gpt4 book ai didi

python - 如何使用 Django 后台任务初始化重复任务?

转载 作者:行者123 更新时间:2023-12-01 11:16:59 32 4
gpt4 key购买 nike

我正在开发一个 django 应用程序,它从 Dropbox 读取 csv 文件,解析数据并将其存储在数据库中。为此,我需要后台任务来检查文件是否被修改或更改(更新),然后更新数据库。
我试过' celery ' 但未能使用 django 配置它。然后我找到 django-background-tasks 这比 celery 配置起来要简单得多。
我的问题是如何初始化重复任务?
documentation 中有描述
但我找不到任何解释如何使用 的示例重复 , 重复_直到 或文档中提到的其他常量。
任何人都可以用例子解释以下内容吗?

notify_user(user.id, repeat=<number of seconds>, repeat_until=<datetime or None>)

repeat is given in seconds. The following constants are provided: Task.NEVER (default), Task.HOURLY, Task.DAILY, Task.WEEKLY, Task.EVERY_2_WEEKS, Task.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,因此它会分派(dispatch)到相应的 View ,这里是 myview()2. 跨行 get_csv(creds, repeat=100)然后创建一个 async task在 DB 中(它现在不会执行该功能)
3. 将 HTTP 响应返回给用户。
任务创建后 60 秒后, get_csv(creds)将在每个 100 seconds 中重复执行

关于python - 如何使用 Django 后台任务初始化重复任务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49536561/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com