How to do a job every half an hour


How to do a job every half an hour



I want to do a job every half an hour. My application is based on Flask, and running on Windows.



Now I create a task for the job, using Windows scheduler service.



I want to know if there is another way I can do cyclic tasks using Flask’s built-in functions...



Sorry for my poor English.




2 Answers
2



I want to know if there is another way I can do [periodic] tasks using Flask’s built-in functions.



Being somewhat a minimalist microframework, I don't think Flask has or ever will have a built-in feature to schedule periodic tasks.



The customary way is what you have already done, you write some Flask code that can be called as an HTTP endpoint or a script, then use a OS scheduling tool to execute it (e.g. Windows Task Scheduler or cron on UNIX/Linux)


cron



Otherwise, Flask works well with other specialized libraries that take care of this, like Celery (periodic tasks) that takes care of those details and adds some features that may not be available otherwise.


from datetime import timedelta

CELERYBEAT_SCHEDULE = {
'every-half-hour': {
'task': 'tasks.your_task',
'schedule': timedelta(minutes=30),
'args': ('task_arg1', 'task_arg2')
},
}

CELERY_TIMEZONE = 'UTC'



I m not sure if this help, but I've been testing the schedule module and it's easy to use and it works well:


$pip install schedule



and this is a sample from the official documentation:


import schedule
import time

def job():
print("I'm working...")

schedule.every(30).minutes.do(job)

while True:
schedule.run_pending()
time.sleep(1)



Hope this help =)






By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Popular posts from this blog

PHP contact form sending but not receiving emails

PHP parse/syntax errors; and how to solve them?

iOS Top Alignment constraint based on screen (superview) height