
Ruslan
30.08.2017
13:32:46

Spacehug
30.08.2017
13:35:40
Есть аппка с конфигом проекта, в котором синглтоном указаны всякие штуки, типа время_рассылки (TimeField). Есть аппка с рассылкой, где указан celery-таск (@shared_task) с этой самой рассылкой, который пинается через Редис. Где можно подглядеть как попинывать этот самый таск в это самое время раз в сутки (не через крон, естественно)?


serbernar
30.08.2017
13:45:20
Есть аппка с конфигом проекта, в котором синглтоном указаны всякие штуки, типа время_рассылки (TimeField). Есть аппка с рассылкой, где указан celery-таск (@shared_task) с этой самой рассылкой, который пинается через Редис. Где можно подглядеть как попинывать этот самый таск в это самое время раз в сутки (не через крон, естественно)?
today = datetime.now().date()
start = datetime(today.year, today.month, today.day, 1, 0)
if datetime.now() > start:
start = start + timedelta(days=1)
start_0100 = pytz.utc.localize(start)
# Таск получения информации о, раз в сутки, в 01:00. Таймаут 2 минуты.
schedule(
func='spiders.tasks.task_api_fetch_new_',
schedule_type=Schedule.DAILY,
next_run=start_0100,
q_options={
'task_name': 'perform-name-apigroups-task',
'timeout': 2 * 60,
},
)

Дмитрий
30.08.2017
13:49:01
Привет, подскажите, пожалуста, где можно бесплатно развернуть проект на джанго?

Google

Maksim
30.08.2017
13:49:04
я когда то делал небольшой проект для себя, даже не проект. а так, баловался, использовал sqlite, скажите, есть ли нормальный конвертор в mysql postgresql

Дмитрий
30.08.2017
13:49:16
с mysql

serbernar
30.08.2017
13:49:18

xPushkin
30.08.2017
13:49:33

Дмитрий
30.08.2017
13:49:35
кроме heroku

xPushkin
30.08.2017
13:49:37
EC2

serbernar
30.08.2017
13:49:48
any vps

Дмитрий
30.08.2017
13:49:52
В интернет вылажить

serbernar
30.08.2017
13:50:28
200 рублей есть?

xPushkin
30.08.2017
13:50:41
Так можно бесплатно

Дмитрий
30.08.2017
13:50:52
есть

Дмитрий
30.08.2017
13:51:27

Google

xPushkin
30.08.2017
13:51:52

Дмитрий
30.08.2017
13:52:05
А на подобие heroku?

Дмитрий
30.08.2017
13:52:11

Дмитрий
30.08.2017
13:52:31
localhost не подходит

Дмитрий
30.08.2017
13:52:57
Может я задаю странные вопросы - но почему?

Дмитрий
30.08.2017
13:53:31
Не хочу на localhost

Artyem
30.08.2017
13:54:42
А как же абстракция?
с абстракциями и знанием SQL, можно добиться большего, чем только с абстракциями.

serbernar
30.08.2017
13:55:39
А что... вскале уже не поддерживает рефералки?
Сцуко

Artem
30.08.2017
13:55:48

serbernar
30.08.2017
13:56:12

Artem
30.08.2017
13:56:25
фскале ниоч...

Nazar
30.08.2017
13:56:29
Подскажите пожалуйста, а как заставить django-debug-toolbar отображаться горизонтально?

serbernar
30.08.2017
13:56:33
Чем не оч?

Spacehug
30.08.2017
13:56:36

Дмитрий
30.08.2017
13:56:42

serbernar
30.08.2017
13:57:00
У меня там две машины, полет нормальный

Nazar
30.08.2017
13:57:02

Artem
30.08.2017
13:57:28
Чем не оч?
ну мне как-то не зашло... пришлось резать правила для iptables, и там как-то с тех свойствами слабовато
и потом бывает, что работает ЦентОсь,работает и никому не мешает. Как вдруг, аппка упала, смотрю какого хера - ребут или по нагрузке упало

Google

Spacehug
30.08.2017
13:58:16
Вот мне совсем недавно пришлось писать голый SQL-запрос - нужно было посчитать количество обсуждений, комментов к ним и лайков, которые оставляет пользователь, причём с условиями - по дате создания, по зависимым моделям и ещё кучу всякого говна и выдать всё это не в 5 тысяч запросов, а в 1. Django-ORM в такое натурально не может.

Artem
30.08.2017
13:58:41

Spacehug
30.08.2017
13:58:52

Artem
30.08.2017
13:58:57
+ у тебя есть возможность писать свои агграгациии, что уже умеет сама БД

xPushkin
30.08.2017
13:58:58
Может )

Илья
30.08.2017
13:59:31

Artem
30.08.2017
13:59:46
но за что зуб даю - SQLAlchemy смогЁт полюбасу!

Spacehug
30.08.2017
14:00:17
Ну давайте. Вот есть модель юзера, у модели юзера через форейнкей привязаны обсуждения, комменты и лайки, у лайков нет is_delete (софт-делит), у обсуждений и комментов - есть. При этом у обсуждений author_id - id юзера, у комментов и лайков - user_id. Давайте, напишите мне ОРМкой фильтр для кверисета :)

serbernar
30.08.2017
14:00:17
Бекапы есть, даже домен можно привязать(не пробовал), ссшключи есть, приложения тоже есть(типа редмайн, с которым можно наворотить, дженкинс есть(правда смысла в нем не вижу изкаропки))

Илья
30.08.2017
14:00:33

Spacehug
30.08.2017
14:00:55
Я, к слову, сделал 1 запрос, который мне не только вынул все данные, но и сделал это не за экспоненциально увеличивающееся время от количества юзеров, а за 40 мс

Artem
30.08.2017
14:01:04

serbernar
30.08.2017
14:01:22
Поржал

Artem
30.08.2017
14:01:58

serbernar
30.08.2017
14:02:11
Алхимией пользоваться надо уметь, в неумелых руках и палка стреляет

Artem
30.08.2017
14:02:23
+1

Spacehug
30.08.2017
14:02:50

serbernar
30.08.2017
14:03:15
А на джанге обычно стараются не писать сложные запросы, а если они и появляются, то пишут в rawsql

Spacehug
30.08.2017
14:04:09

Google

Илья
30.08.2017
14:04:49
Ну элементарно, джанга даже не умеет "ON CONFLICT UPDATE"

Artem
30.08.2017
14:08:11
Ну давайте. Вот есть модель юзера, у модели юзера через форейнкей привязаны обсуждения, комменты и лайки, у лайков нет is_delete (софт-делит), у обсуждений и комментов - есть. При этом у обсуждений author_id - id юзера, у комментов и лайков - user_id. Давайте, напишите мне ОРМкой фильтр для кверисета :)
User.objects.annotate(cnt_likes=Count('id'), cnt_comments=Count('id'), cnt_topics=Count(Case(When(autor_id=F('user_id')))).only('id', 'cnt_likes', 'cnt_comments', 'cnt_topics').prefetch_related('comments', 'likes', 'topics').filter(topics__author_id=self.request.user.pk, topics__is_delete=False, comments__is_delete=False)
если правильно понял, то примено в таком виде

Spacehug
30.08.2017
14:10:51
Угу, только посчитать нужно не всё, а то, у чего есть is_delete=True/is_delete=False и date_create в диапазоне дат. Говорю же, по зависимым полям - проще уже голый SQL

Artem
30.08.2017
14:11:23
фильтров накидывай, сколько угодно, хоть BETWEEN между диапазоном

Spacehug
30.08.2017
14:12:07
И ещё один момент - если в фильтре указаны только удалённые - в лайках должен быть 0 :)

Artem
30.08.2017
14:12:21
окей, в кейзы запихать 0

Spacehug
30.08.2017
14:12:23
Кстати, твой запрос на тестовой базе в 200 пользователей выполнился за 32 секунды.

Artem
30.08.2017
14:13:10
оно даже сработало? О_о или так прикинул

Spacehug
30.08.2017
14:13:47
Ну, я поменял названия на существующие и запустил

Artem
30.08.2017
14:13:58
ну уж сказал, 32 секунды... тут нету случая о n+1 запросах
показать можешь, чего он сгенерил?

Pavel
30.08.2017
14:14:24

xPushkin
30.08.2017
14:14:42

Artem
30.08.2017
14:14:43
и как выглядит твой SQL

Spacehug
30.08.2017
14:18:16
мой вот https://pastebin.com/yy0PgxUe
(Без фильтров по is_delete и date_created)

Artem
30.08.2017
14:19:43

Spacehug
30.08.2017
14:20:01
д.

Google

Artem
30.08.2017
14:20:20
насколько я сейчас помню в 1.10 есть аннотация - Subquery() и туда закидывать можно целиковые запросы, и без проблем повторю твой запрос один в один
дистинкт в каунтере, тоже есть
так что ничего крутого в твоем запросе нету, обычный! Я бы еще тебя понял, если ты эти три запроса вынес в оконные функции, тут да! Не вопрос!

V
30.08.2017
14:21:58
есть кто из Калининграда?
нужен фидбек

Spacehug
30.08.2017
14:22:25
Я и не говорю, что он крутой, я голый не-ормный SQL освоил буквально на прошлой неделе. С другой стороны,
[2017-08-30 19:20:25] 500 rows retrieved starting from 1 in 25ms (execution: 20ms, fetching: 5ms)

Artem
30.08.2017
14:23:10
а весь EXPLAIN можешь кинуть?

Spacehug
30.08.2017
14:27:01

Artem
30.08.2017
14:28:51

Spacehug
30.08.2017
14:32:38
Дык этсамое, rows=2340954. База с 5к юзеров

.
30.08.2017
14:43:14
Гайз, подскажите кто как делает поле для цвета в формах.
colour = forms.CharField(label='Цвет', widget=forms.TextInput(attrs={'type': 'color'}))Пробую как-то так, но проблема в том, что я не могу поставить значение в null. Если я правильно понял, то это вообще невозможно для type=color.

Dan
30.08.2017
14:46:57

Reshavi4
30.08.2017
14:48:25
Есть у кого ссылка на ключь для пичарма?

Archer
30.08.2017
14:49:41
может у кого и на mobaXterm тогда есть?

.
30.08.2017
14:50:57

Dan
30.08.2017
14:51:37
colour = forms.CharField(required=False ?

.
30.08.2017
14:52:00
когда форма отрисовывается, там уже есть значение
браузер пихает туда черный цвет

Ahmed
30.08.2017
16:05:15
Ребята, кто поможет с celery? Celery не хочет запускаться в контейнере https://pastebin.com/2VQTM3ZD

Artem
30.08.2017
16:23:30

Ahmed
30.08.2017
16:38:42