python - func 必须是一个可调用的或文本引用
问题描述
我试图每 2 分钟运行一次函数,为此我使用 apscheduler。但是,当我运行它时,我收到以下错误:
Traceback (most recent call last):
File "main_forecast.py", line 7, in <module>
scheduler.add_job(get_warnings(), 'interval', seconds = 120)
File "/home/anastasispap/.local/lib/python3.6/site-packages/apscheduler/schedulers/base.py", line 434, in add_job
job = Job(self, **job_kwargs)
File "/home/anastasispap/.local/lib/python3.6/site-packages/apscheduler/job.py", line 49, in __init__
self._modify(id=id or uuid4().hex, **kwargs)
File "/home/anastasispap/.local/lib/python3.6/site-packages/apscheduler/job.py", line 170, in _modify
raise TypeError('func must be a callable or a textual reference to one')
TypeError: func must be a callable or a textual reference to one
这是代码:
from apscheduler.schedulers.background import BackgroundScheduler
from enemies_info import get_warnings
import time
scheduler = BackgroundScheduler()
scheduler.add_job(get_warnings(), 'interval', seconds = 120)
scheduler.start()
while True:
time.sleep(120)
我想每 2 分钟运行一次的函数是 get_warnings。
def get_warnings():
print('get_warning has been run')
names = []
types = []
number_of_threats = 0
forecast_weather()
for i in range(0, number_of_enemies):
enemies = info["enemies"][i]
name = enemies["name"]
type = enemies["type"]
temperature = enemies["temperature"]
temperature = temperature.split("-")
min_temp = temperature[0]
max_temp = temperature[1]
for i in range(len(temperatures)):
if avg_temps[i] <= str(max_temp):
names.append(name)
types.append(type)
number_of_threats += 1
break
os.chdir('..')
write_data(number_of_threats, names, types)
move_to_github()
解决方案
您正在调用函数 get_warnings,而不是将其作为可调用对象提供。尝试:
scheduler.add_job(get_warnings, 'interval', seconds = 120)
推荐阅读
- c# - 如何使用 C# 在 Selenium WebDriver 中等待警报?
- python - 如何用单个 NaN 替换 pandas 数据框中的多个 NaN 行
- javascript - 电子JS。设置窗口名称或识别哪个窗口发出事件
- dialogflow-es - Webhook 调用失败
- cypress - Cypress visit() 失败:TypeError: Invalid character in header content ["cookie"]
- python - 在 Python 中将列表对转换为键值对
- django - Django + Python 社交身份验证:如何为 GitHub Enterprise 配置 OAuth?
- css - 是否有可能将所有:悬停(css)用作:活动?(无需为每个元素编写)
- automation - Blue Prism - 无法窥探元素 - 浏览器 Firefox
- cassandra - Cassandra 机器要求:通用或 IO 密集型