我正在开发一个 Django 应用程序,它从 dropbox 读取 csv 文件,解析数据并将其存储在数据库中。为此,我需要后台任务来检查文件是否被修改或更改(更新),然后更新数据库。
我试过了 'Celery' 但无法使用 django 配置它。然后我发现django 后台任务这比 celery 的配置要简单得多。
我的问题是如何初始化重复任务?
它描述于文档但我找不到任何解释如何使用的示例repeat, 重复直到或文档中提到的其他常量。
谁能用例子解释以下内容吗?
notify_user(user.id, repeat=<number of seconds>, repeat_until=<datetime or None>)
重复以秒为单位。提供了以下常量:
Task.NEVER(默认)、Task.HOURLY、Task.DAILY、Task.WEEKLY、
任务.EVERY_2_WEEKS、任务.EVERY_4_WEEKS。
你必须调用特定的函数(notify_user()
)当你确实需要执行它时。
假设您需要在请求到达服务器时执行任务,那么它会是这样的,
@background(schedule=60)
def get_csv(creds):
#read csv from drop box with credentials, "creds"
#then update the DB
def myview(request):
# do something with my view
get_csv(creds, repeat=100)
return SomeHttpResponse
执行程序
1.请求到达url,因此它会分派到相应的视图,这里myview()
2. 超出线get_csv(creds, repeat=100)
然后创建一个async task
imDB(现在不会执行该函数)
3. 将HTTP响应返回给用户。
任务创建后 60 秒后,get_csv(creds)
将在每个中重复执行100 seconds
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)