Size: a a a

Django [ru] #STAY HOME

2019 November 17

AK

Anvar Khamidov in Django [ru] #STAY HOME
Ребят, всем привет.
Запускаю docker-compose(django gunicorn, nginx, postgresql, celery, redis). Все отлично  кромке того, что celery не может подключиться к redis. Пишет вот что
Cannot connect to redis://localhost:6379/0: Error 99 connecting to localhost:6379. Cannot assign requested address..
источник

AK

Anvar Khamidov in Django [ru] #STAY HOME
docker-compose

version: '2'

services:
 db:
   image: postgres:10
   env_file:
     - ./bin/database_env
     - ./bin/for_send_email_env
     - ./bin/vk_data_env

   volumes:
     - db_volume:/var/lib/postgresql/data
   networks:
     - db_network
   ports:
     - "5432:5432"

 web_service:
   restart: always
   container_name: web_service
   build: .
   command: sh -c "cd khblog && gunicorn --bind 0.0.0.0:8000 mysite.wsgi"
   env_file:
     - ./bin/database_env
     - ./bin/for_send_email_env
     - ./bin/vk_data_env
   volumes:
     - ./static:/khblog/khblog/static
     - ./media:/khblog/khblog/media
   depends_on:
     - db
   expose:
     - "8000"
   links:
     - db:db
   networks:
     - nginx_network
     - db_network

 nginx:
   build:
     context: ./nginx
   ports:
     - "80:80"
   depends_on:
     - web_service
   volumes:
     - ./nginx:/etc/nginx/
     - ./static:/usr/src/static
     - ./media:/usr/src/media
   networks:
     - nginx_network
     - db_network

 celery:
   build: .
   depends_on:
     - web_service
     - db
     - redis
   command: sh -c "cd khblog && celery -A mysite worker -l debug"
   networks:
     - celery_network
     - redis_network

 redis:
   image: redis:alpine
   expose:
     - "6379"
   ports:
     - "6379:6379"
   networks:
     - celery_network
     - redis_network


networks:
 nginx_network:
   driver: bridge
 db_network:
   driver: bridge
 celery_network:
   driver: bridge
 redis_network:
   driver: bridge

volumes:
 db_volume:
источник

А

Алексей in Django [ru] #STAY HOME
Anvar Khamidov
Ребят, всем привет.
Запускаю docker-compose(django gunicorn, nginx, postgresql, celery, redis). Все отлично  кромке того, что celery не может подключиться к redis. Пишет вот что
Cannot connect to redis://localhost:6379/0: Error 99 connecting to localhost:6379. Cannot assign requested address..
К контейнеру обращайся:
http://redis:6379
(тогда в редисе достаточно expose)
источник

AK

Anvar Khamidov in Django [ru] #STAY HOME
Алексей
К контейнеру обращайся:
http://redis:6379
(тогда в редисе достаточно expose)
Как обратиться?
источник

AK

Anvar Khamidov in Django [ru] #STAY HOME
Не вкуриваю
источник

А

Алексей in Django [ru] #STAY HOME
Anvar Khamidov
Как обратиться?
В настройках целери redis url измени на эту
источник

AK

Anvar Khamidov in Django [ru] #STAY HOME
а
источник

AK

Anvar Khamidov in Django [ru] #STAY HOME
Алексей
В настройках целери redis url измени на эту
Ща попробуем
источник

🔐

🔐{% ɹoƃǝʎ %} in Django [ru] #STAY HOME
let45fc
Используй sort
медленный, нашел получше
.order_by(F('rate').desc(nulls_last=True)
источник

A

Andrey in Django [ru] #STAY HOME
let45fc
Там есть аргумент key, почитай за него
В то время как все СУБД умеют ордер бай?)
источник

MB

Max Block in Django [ru] #STAY HOME
Pavel Zagrebelin
А что, фласк умеет перехватывтаь эксепшены, возникающие в тредах? Это и в обычном-то питоне нетривиальная задача, неужели это поятнули во фласк?
Проверил сейчас. Нет, не умеет 🙁 Это я перепутал с чем-то (наверное из мира node.js), и жил с неоправданными ожиданиями от фласка.

Таск перехватывать всех эксепшины во всех потоках — я так и не смог решить. В python 3.8 добавили sys.unraisablehook, который якобы должен ловить такие ошибки в потоках. Но что-то у меня не получилось с ним ничего.
источник

l

let45fc in Django [ru] #STAY HOME
Andrey
В то время как все СУБД умеют ордер бай?)
И принимают на вход функцию?)
источник

A

Andrey in Django [ru] #STAY HOME
let45fc
И принимают на вход функцию?)
Ордер бай несколько колонок принимает.
источник

l

let45fc in Django [ru] #STAY HOME
Andrey
Ордер бай несколько колонок принимает.
Ну, а нам None нужно как 0 обрабатывать
источник

A

Andrey in Django [ru] #STAY HOME
let45fc
Ну, а нам None нужно как 0 обрабатывать
не вижу проблем
источник

A

Andrey in Django [ru] #STAY HOME
case when
источник

A

Andrey in Django [ru] #STAY HOME
источник

A

Andrey in Django [ru] #STAY HOME
Думаю в других субд тоже есть такое
источник

l

let45fc in Django [ru] #STAY HOME
Andrey
case when
Неплохо, не знал
источник

S

S.B.A in Django [ru] #STAY HOME
Документация.
источник