В настоящее время я пытаюсь использовать UWSGI для запуска запланированных заданий cron;
Он запускается в приложении flask (намерение состоит в том, чтобы иметь дружественный интерфейс, где я мог бы просматривать задачи для запуска / последнего запуска / редактирования). период времени для запуска et c)
Однако, похоже, что когда я регистрирую сигнал, используя uwsgi.register_signal
, затем добавляю cron для запуска сигнала, указанная функция будет запускаться несколько раз (просматривая журналы)
Я использую flask_sqlalchemy для хранения деталей cron, они отображаются через schedule
class
Вот код, который я использую:
def register_signals():
for x in schedule.query.all():
uwsgi.register_signal(x.id+30,"",functionName)
def deployworker():
for x in schedule.query.all():
utc=dt.datetime.strptime(x.utc,('%H-%M-%S'))
uwsgi.add_cron(x.id+30,utc.minute,utc.hour,-1,-1,-1)
def all_updates(self):
schedules=schedule.query.all()
#some other code in here which ensures crons have UTC time recorded (user inputs in local time)
register_signals()
deployworker()
uwsgi.register_signal(29, "", all_updates)
#need to add timer to regularly review the crons database to check if run times have changed
#(probably only needs to happen daily)
uwsgi.add_timer(29,30)
Я знаю, что это можно сделать более простым способом (ie с помощью отдельных сценариев и crontab), но на самом деле очень хочу иметь его в приложении flask (часть гораздо более крупного приложения), используя uwsgi (или что-то подобное , если это может быть импортировано в)
Спасибо.