文章内容
2019/1/15 22:41:05,作 者: 黄兵
Apscheduler TypeError: func must be a callable or a textual reference to one
最近在使用Apscheduler的时候报如下错误:
● SMS_Receive_Redis.service - Process Redis data on the SMS_Receive website.
Loaded: loaded (/etc/systemd/system/SMS_Receive_Redis.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Tue 2019-01-15 22:05:33 CST; 9min ago
Process: 28834 ExecStop=/bin/kill -s TERM $MAINPID (code=exited, status=0/SUCCESS)
Process: 17445 ExecStart=/usr/bin/env python Anti_Web_Scraping.py (code=exited, status=1/FAILURE)
Main PID: 17445 (code=exited, status=1/FAILURE)
Jan 15 22:05:33 VM-102-216-ubuntu env[17445]: File "/var/SMS_Receive/venv/lib/python3.5/site-packages/apscheduler/schedulers/base.py", line 430, in add_job
Jan 15 22:05:33 VM-102-216-ubuntu env[17445]: job = Job(self, **job_kwargs)
Jan 15 22:05:33 VM-102-216-ubuntu env[17445]: File "/var/SMS_Receive/venv/lib/python3.5/site-packages/apscheduler/job.py", line 45, in __init__
Jan 15 22:05:33 VM-102-216-ubuntu env[17445]: self._modify(id=id or uuid4().hex, **kwargs)
Jan 15 22:05:33 VM-102-216-ubuntu env[17445]: File "/var/SMS_Receive/venv/lib/python3.5/site-packages/apscheduler/job.py", line 166, in _modify
Jan 15 22:05:33 VM-102-216-ubuntu env[17445]: raise TypeError('func must be a callable or a textual reference to one')
Jan 15 22:05:33 VM-102-216-ubuntu env[17445]: TypeError: func must be a callable or a textual reference to one
Jan 15 22:05:33 VM-102-216-ubuntu systemd[1]: SMS_Receive_Redis.service: Main process exited, code=exited, status=1/FAILURE
Jan 15 22:05:33 VM-102-216-ubuntu systemd[1]: SMS_Receive_Redis.service: Unit entered failed state.
Jan 15 22:05:33 VM-102-216-ubuntu systemd[1]: SMS_Receive_Redis.service: Failed with result 'exit-code'.
if __name__ == '__main__': # 实例化一个调度器 scheduler = BlockingScheduler() scale_ip = Anti_Web_Scraping() clean_counter = Save_Redis_Original_Data() # 添加任务并设置触发方式为2小时执行一次 scheduler.add_job(scale_ip.get_counter(), 'interval', seconds=7200) # 每天6:00执行 scheduler.add_job(clean_counter.clean_counters(), 'cron', hour=6, minute=00) # 开始运行调度器 scheduler.start()
def get_counter(self): conn = Conn_Config().Conn_Redis() get_visit_time_line = conn.lrange('visit_time_line', 0, -1) for index, precision_item in enumerate(self.PRECISION): visit_counter = self.VISIT_COUNTER[index] Anti_Web_Scraping.cycle(self, get_visit_time_line, conn, precision_item, visit_counter)
if __name__ == '__main__': # 实例化一个调度器 scheduler = BlockingScheduler() scale_ip = Anti_Web_Scraping() clean_counter = Save_Redis_Original_Data() # 添加任务并设置触发方式为2小时执行一次 scheduler.add_job(scale_ip.get_counter, 'interval', seconds=7200) # 每天6:00执行 scheduler.add_job(clean_counter.clean_counters, 'cron', hour=6, minute=00) # 开始运行调度器 scheduler.start()
参考资料:Apscheduler runs once then throws TypeError
黄兵个人博客原创。
转载请注明出处:黄兵个人博客 - Apscheduler TypeError: func must be a callable or a textual reference to one
评论列表