这个想法是允许用户向服务器提交时间/日期,以安排作业在用户指定的时间执行。
我的第一选择是在视图中执行此操作,将前端数据发布到该视图中。但是,apscheduler返回值错误。
下面是我希望用于用户计划的工作的视图片段,只是一个小测试。
class SchedulePolicyDeployView(APIView):
def post(self, request, version):
def test_job():
print("cron job test")
scheduler.start()
scheduler.add_job(test_job, "cron", id="test_job", day="*", minute="*/1")
return Response("job scheduled successfully")
返回的错误消息是:
ValueError: This Job cannot be serialized since the reference to its callable (<function SchedulePolicyDeployView.post.<locals>.test_job at 0x05694C00>) could not be determined. Consider giving a textual reference (module:function name) instead.
所以我确实在代码中解决了这个问题;但自从我问了这个问题以来,它已经发生了很大的变化。我尝试将所有内容都放在这里:
*假设调度程序对象已经初始化
scheduler.py
def schedule_job(arg1, arg2, arg3, time, job_id):
scheduler.add_job(deploy_policy, 'date', args=[arg1, arg2, arg3], run_date=datetime(int(date['year']), int(date['month']), int(date['day']), int(time['hour']), int(time['minute']), 0))
return Response({"message": "scheduled!"})
views.py
from scheduler import schedule_job
class SchedulePolicyDeployView(APIView):
def post(self, request, version):
schedule_job(apic, username, password, policy_url_and_payload_result, date_dict, time_dict, payload["job_id"])
return Response({"result": "success"})
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句