[英]Django Schedule/run tasks dynamically at particular time periodically from user's order in app (without celery)
我正在创建一个 Django 应用程序,用户可以在其中安排一些任务在特定时间发生。
例如。 在谷歌日历中,我们告诉谷歌我们明天要做什么,然后它会在正确的时间向我们发送通知。
同样在这里我希望它是灵活的,例如,用户可以告诉 Django 时间和 function 运行。 Django 将等待时间然后运行 function。
就像他说的那样,晚上 12 点关灯,然后 Django 会这样做。
或例如:-
用户说在 30 分钟内提醒我 go 去健身房
然后在 30 分钟后,他收到通知。
实际上任务是动态添加的,所以我们一开始不能硬编码它们。
代码:-
skills.py # all the functions defined by user are imported in it
# for example take this task
def turn_off_light(room, id, *args, **kwargs):
# turned off light using python (your logic)
print(f"light no {id} is turned off!")
有一个 Django model 被称为Function
,其中这个 ZC1C425268E68385D1AB5Z074C1 用户可以轻松存储和访问它。
我希望users
在应用程序中使用 select 这个function
并给出参数和时间,Django 将在那个时候运行它!
简而言之,我需要的是应用程序内的用户能够设置函数(或任务)的时间以在特定时间运行(可能是定期或一次或可能在这种情况下),并且 Django 在该特定时间运行它时间。
注意:用户还将提供 args 和 kwargs(我正在处理)。 我所需要的只是 Django 使用这些 args 和 kwargs 运行 function。
(仅 Django 方法没有 celery 或其他东西将不胜感激)
谢谢!
没有 Celery 并使用 Django 最好的方法是使用Cron 创建自定义 django-admin 命令
例如:
否则没有办法在纯 Python/Django 中做到这一点
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.