【问题标题】:passing current object to python apscheduler method将当前对象传递给 python apscheduler 方法
【发布时间】:2013-08-24 17:11:01
【问题描述】:

我正在尝试在班级内每隔 X 小时安排一次作业。但是我不确定如何将当前上下文传递给该方法,因为它需要“自我”。我知道如果按照 cron 样式执行,我可以使用 args 参数列表,但这也不起作用。帮助?

class MyClass(object):
    @settings.scheduler.interval_schedule(hours=2)
    def post(self, first_argument=None):
        # do stuff
        self.cleanup()

结果

Traceback (most recent call last):
      File "/usr/local/lib/python2.7/dist-packages/apscheduler/scheduler.py", line 510, in _run_job
        retval = job.func(*job.args, **job.kwargs)
    TypeError: post() takes at least 1 argument (0 given)

谢谢。

【问题讨论】:

    标签: python oop arguments apscheduler


    【解决方案1】:

    你可以这样走:

    class MyClass(object):
        def post(self, first_argument=None):
            # do stuff
            self.cleanup()
    
    
    @settings.scheduler.interval_schedule(hours=2)
    def my_job(first_argument=None):
        my_class = MyClass()
        my_class.post(first_argument)
    

    或者,这样:

    my_class = MyClass()
    scheduler.add_job(my_class.post, 'interval', {'seconds': 3}, kwargs={'first_argument': first_argument})
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-10-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-09
      • 2011-09-27
      • 2014-12-01
      相关资源
      最近更新 更多