!EtOwXhTzFTAeMBoSpH:matrix.org

SPb Python

5844 Members
52 Servers

Load older messages


SenderMessageTime
24 Jan 2022
@telegram_5018910988:t2bot.ioJeje joined the room.00:23:18
@telegram_163574851:t2bot.ioSasha Malysheva changed their display name from Sasha Malysheva (Telegram) to Sasha Malysheva.04:51:41
@telegram_163574851:t2bot.ioSasha Malysheva changed their profile picture.04:51:47
@steinun:matrix.orgAdam Loewen joined the room.05:25:41
@telegram_59323058:t2bot.ioSerge Matveenko
In reply to Danil Ivanov
Или лучше RQ
Ни то, ни другое тут не нужно.
06:37:17
@telegram_59323058:t2bot.ioSerge Matveenko
In reply to Anton
привет
мне нужно сделать обработчик задач.
Задачи добавляются в таблицу БД.

Нужно написать механизм, который будет брать задачи на выполнение из таблицы.
Думаю написать worker на базе MultiProcessing, который будет постоянно делать запросы по бд и брать задачи.

Либо сделать что-то такое же на celery.
Но важно чтобы был один worker. То есть нужен только один обработчик.

Может есть какие-то варианты лучше?
Добавляем поле статус в табличку. Дальше в бесконечном цикле выбираем самый старый со статусом "не обработано" и ставим ему статус "обрабатывается". Обрабатываем. Сохраняем со статусом "обработано".
Можно добавить паузу, если не нашли необработанных.
Можно проверять, что нет подвисших в обработке при старте, если реально один процесс
Но такое может и параллельно запускать.
Для параллельной обработки можно использовать редис, чтобы хранить те, что сейчас обрабатываются и пропускать их, когда выбираем новый для обработки.
06:40:50
@telegram_59323058:t2bot.ioSerge Matveenko
In reply to Anton
RQ выглядит как максимально упрощенный вариант планировщика задач

Спасибо, посмотрю что там
Планировщик задач не нужен для обработки данных, которые уже сохранены списком (таблицей). Он будет только мешать.
06:41:40
@telegram_105393634:t2bot.ioAntonспасибо06:42:13
@telegram_59323058:t2bot.ioSerge Matveenko* Добавляем поле статус в табличку. Дальше в бесконечном цикле выбираем самый старый со статусом "не обработано" и ставим ему статус "обрабатывается". Обрабатываем. Сохраняем со статусом "обработано". Можно добавить паузу, если не нашли необработанных. Можно проверять, что нет подвисших в обработке при старте, если реально один процесс Но такое можно и параллельно запускать. Для параллельной обработки можно использовать редис, чтобы хранить те, что сейчас обрабатываются и пропускать их, когда выбираем новый для обработки.06:42:40
@telegram_59323058:t2bot.ioSerge Matveenko
In reply to Serge Matveenko
Добавляем поле статус в табличку. Дальше в бесконечном цикле выбираем самый старый со статусом "не обработано" и ставим ему статус "обрабатывается". Обрабатываем. Сохраняем со статусом "обработано".
Можно добавить паузу, если не нашли необработанных.
Можно проверять, что нет подвисших в обработке при старте, если реально один процесс
Но такое можно и параллельно запускать.
Для параллельной обработки можно использовать редис, чтобы хранить те, что сейчас обрабатываются и пропускать их, когда выбираем новый для обработки.
Причем в редисе это можно сделать локом, который можно поставить с временем на протухание. Это позволит не проверять подвисшие (из-за ошибок), а просто брать из со временем снова в обработку.
06:44:02
@telegram_59323058:t2bot.ioSerge Matveenko* Причем в редисе это можно сделать локом, который можно поставить с временем на протухание. Это позволит не проверять подвисшие (из-за ошибок), а просто брать их со временем снова в обработку.06:44:16
@telegram_59323058:t2bot.ioSerge MatveenkoВообще, если вам надо обрабатывать последовательность данных или запускать что-то регулярно, то я бы сильно рекомендовал забыть, что существуют всякие Celery и RQ. Последовательности данных уже последовательности и я выше написал как их можно обрабатывать, а для регулярных задач есть... Cron, внезапно. А если вы используете Kubernetes (начните уже, если ещё не используете), там есть удобный CronJob.06:47:43
@telegram_132982472:t2bot.ioDanil Ivanov Чат, а что нынче есть хорошего в качестве шаблона для django приложения? по типу https://github.com/jpadilla/django-project-template так чтобы настройки docker-compose (или другой способ запуска) 08:08:00
@telegram_275642966:t2bot.ioАлена joined the room.08:08:21
@telegram_59323058:t2bot.ioSerge Matveenko
In reply to Danil Ivanov
Чат, а что нынче есть хорошего в качестве шаблона для django приложения? по типу https://github.com/jpadilla/django-project-template так чтобы настройки docker-compose (или другой способ запуска)
Прости, не удержался;)
https://flask.palletsprojects.com/en/2.0.x/quickstart/
08:16:54
@telegram_132982472:t2bot.ioDanil Ivanov
In reply to Serge Matveenko
Прости, не удержался;)
https://flask.palletsprojects.com/en/2.0.x/quickstart/
Я даже ради этого пошёл реакции включил ))
09:03:35
@telegram_132982472:t2bot.ioDanil Ivanov
In reply to Serge Matveenko
Прости, не удержался;)
https://flask.palletsprojects.com/en/2.0.x/quickstart/
По факту я ради админки делаю, ну и чтобы не на strapi решил Django вспомнить )
09:04:37
@telegram_1315889401:t2bot.ioЮрий joined the room.09:11:36
@telegram_59323058:t2bot.ioSerge Matveenko
In reply to Danil Ivanov
По факту я ради админки делаю, ну и чтобы не на strapi решил Django вспомнить )
https://flask-admin.readthedocs.io/en/latest/
выглядит как-будто его Чужие для Хищников делали, но работает. мы пользуемся немного
09:15:20
@_xmpp_avemarialilit=40jabber.ru:matrix.orgAvemarialilit changed their display name from Avemarialilit to avemarialilit.09:50:35
@_xmpp_avemarialilit=40jabber.ru:matrix.orgAvemarialilit left the room.09:50:38
@_xmpp_avemarialilit=40jabber.ru:matrix.orgAvemarialilit joined the room.09:50:40
@12tt:matrix.org@12tt:matrix.org joined the room.10:39:45
@12tt:matrix.org@12tt:matrix.org left the room.10:52:13
@emma559:matrix.orgEmma Lord joined the room.11:09:25
@telegram_319155674:t2bot.ioОксана joined the room.11:36:44
@telegram_382093249:t2bot.ioMaxim Afanasev
In reply to Serge Matveenko
Прости, не удержался;)
https://flask.palletsprojects.com/en/2.0.x/quickstart/
А где там стартер с docker-compose? Похоже на обычную доку, которая у Джанго даже получше будет )
13:19:27
@vs0l:matrix.orgvs set a profile picture.13:49:46
@vs0l:matrix.orgvs changed their display name from vs0l to vsol.13:50:01
@vs0l:matrix.orgvs changed their display name from vsol to vs.13:50:09

There are no newer messages yet.


Back to Room List