Сергей Горностаев, не подскажите как запустить сервер redis?
Выполнил pip install redis
Добавил настройки в settings.py
Но не запускается по команде redis-server? (bash: redis-server: command not found)
bQ1, у Celery есть пул процессов, которые забирают задачи из очереди по мере освобождения. Если задач будет много и выполняться они будут долго, то более поздние начнут отставать по срокам выполнения. Стратегию можно поменять, но тогда возникает угроза исчерпания ресурсов сервера.
bQ1, я тоже так думаю. Я думаю, что можно даже извернутся и сворачивать все задачи запланированные на одно время в одну и выполнять изменения в БД одним batch-запросом.
@task(name="run")
def run(instance_id, interval):
date = now()
next_run = date + timedelta(minutes=interval)
models.Posts.objects.filter(
pk=instance_id).update(date=date, next_run=next_run)
Суть в том чтобы когда отработает задача, поставилась новая на следующую дату с интервалом interval. next_run меняется на поставленный интервал но новая задача не ставится
UPD: кажется я сглупил и пишу зря лишний код, когда можно сразу задать периодичность в apply_async?, но все равно не очень понятно почему не работает второй раз