python使用不同的时区安排作业

python使用不同的时区安排作业,python,cron,timezone,schedule,Python,Cron,Timezone,Schedule,我希望为具有不同时区的客户列表安排一个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

我希望为具有不同时区的客户列表安排一个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()
我使用它来使用flask和外部API发布/接收一些东西

芹菜、heroku调度器或一些重的东西不是我想要的,debian(或nix)env的一些轻量级和pythonic的东西将是理想的。我已经研究过了,但还没有弄清楚我们将如何在时区中使用它们

此外,我还尝试使用crontab,但不知道如何在运行时添加作业,因为我希望能够在运行时使用上述函数添加/删除作业

我有一些python方面的经验,但这是我在时区方面的第一个问题,我对此不太了解,所以如果我遗漏了什么或者有其他方法,请随时告诉我


谢谢

箭头库在这方面非常好,而且比标准日期/时间(imo)简单得多


我会更改您的“添加作业”方法,将所有传入日期修改为标准时区(例如utc)

箭头库在这方面非常好,而且比标准日期/时间(imo)简单得多


我会更改您的“添加作业”方法,将所有传入日期修改为标准时区(例如utc)

看看Python的
datetime
包。将外部时区转换为本地时区。另一种可能是尝试使用
crontab
,并在单独的问题中提出您的问题。如果你在任何一个地方都能找到解决方案,你就赢了。@Prune我会试试。似乎将外国时区转换为本地时区是可行的。我太笨了,谢谢你的建议看看Python的
datetime
包。将外部时区转换为本地时区。另一种可能是尝试使用
crontab
,并在单独的问题中提出您的问题。如果你在任何一个地方都能找到解决方案,你就赢了。@Prune我会试试。似乎将外国时区转换为本地时区是可行的。我太笨了,谢谢你的建议
import arrow
from datetime import datetime

now = datetime.now()
atime = arrow.get(now)
print(now)
print (atime)

eastern = atime.to('US/Eastern')
print (eastern)
print (eastern.datetime)

2017-11-17 09:53:58.700546
2017-11-17T09:53:58.700546+00:00
2017-11-17T04:53:58.700546-05:00
2017-11-17 04:53:58.700546-05:00