我每隔一段时间安排两个python作业。
activity_url_collector
和storage_data_collector
是与.py
相同目录中的index.py
个文件。
以下是 index.py :
import schedule
import time
import psycopg2
import threading
import activity_url_collector
import storage_data_collector
def main():
def run_threaded(job_func):
job_thread = threading.Thread(target=job_func)
job_thread.start()
schedule.every(3).minutes.do(run_threaded, activity_url_collector)
schedule.every(3).minutes.do(run_threaded, storage_data_collector)
schedule.run_all()
print('Post-Processing-Application is running')
while True:
schedule.run_pending()
time.sleep(1)
if __name__=="__main__":
main()
详细错误:
Traceback (most recent call last):
File "/usr/lib/python3.5/threading.py", line 914, in _bootstrap_inner
self.run()
File "/usr/lib/python3.5/threading.py", line 862, in run
self._target(*self._args, **self._kwargs)
TypeError: 'module' object is not callable
这里可能出现什么问题?感谢。
答案 0 :(得分:2)
您正尝试在线程中运行activity_url_collector
和storage_data_collector
。
查看你的导入都是模块(Python文件),它们可以直接由解释器运行,但它们不是你需要的“callables”。
您可以在线程中运行函数,方法或任何实现__call__
的对象。作为一种解决方案,您可以向模块中添加main()
函数来执行实际工作,并使用activity_url_collector.main
作为线程的目标。