繁体   English   中英

Django 根据用户在应用程序中的顺序定期在特定时间动态调度/运行任务(无芹菜)

[英]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 命令

例如:

  • 创建名为 calendar_routine.py 的客户命令
  • 创建一个 cron 计划以在给定时间从您的服务器调用您的 function

否则没有办法在纯 Python/Django 中做到这一点

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM