【发布时间】:2018-05-01 13:45:18
【问题描述】:
我想安排一个 python 函数在每天的某个时间为具有不同时区的客户列表运行。
这基本上是我想做的:
import schedule
import time
def job(text):
print("Hello " + text)
def add_job(user_tz, time, text):
schedule.every().day.at(time).do(job(text))
# the above adds all jobs at local time, I want to use different timezones with these
def run_job():
while(1):
schedule.run_pending()
time.sleep(1)
if __name__=='__main__':
add_job('America/New_York', "12:00", 'New York')
add_job('Europe/London', "12:00", 'London')
run_job()
我正在使用它通过烧瓶和外部 API 发布/接收一些东西。
Celery 或 heroku 调度程序或重的东西不是我想要的,debian(或 nix)环境的轻量级和 pythonic 将是理想的。我研究了scheduler、tzcron 和APScheduler,但无法弄清楚我们如何将它们与时区一起使用。
我也尝试使用 crontab,但不知道如何在运行时添加作业,因为我也希望能够在运行时使用上述函数添加/删除作业。
我对 python 有一些经验,但这是我的第一个时区问题,我对此了解不多,所以如果我遗漏了什么或有其他方法,请随时赐教。
谢谢!
【问题讨论】:
-
查看 Python 的
datetime包。将国外时区转换为本地时区。另一种可能性是尝试使用crontab,并在单独的问题中发布您的问题。如果你在任何一个地方都能找到解决方案,你就赢了。 -
@Prune 我会试试的。似乎将外国时区转换为本地时区可以工作。我太笨了,谢谢你的建议
标签: python cron timezone scheduler schedule