如何解决APScheduler 不会每次都添加相同的作业
我正在尝试创建一个程序,该程序从 Google 表格中收集文本并使用 APScheduler 模块将其发布到 Twitter 上。
我认为最好的解决方案是创建一个无限循环,不断寻找新行并将其添加为新作业。
这是代码
import gspread
import tweepy
from apscheduler.schedulers.background import BackgroundScheduler
from datetime import datetime
auth = tweepy.OAuthHandler(consumer_key,consumer_secret)
auth.set_access_token(token,token_secret)
api = tweepy.API(auth)
gc = gspread.service_account('credentials.json')
wks = gc.open("sheet").sheet1
sched = BackgroundScheduler()
def tuitar(text):
api.update_status(text)
cell = wks.find(text)
wks.update(f'D{cell.row}','ok')
to_schedule = lambda x: datetime.strptime(x,'%Y-%m-%d %H:%M')
sched.start()
while True:
tweets = wks.col_values(1)[1:]
schedules = wks.col_values(2)[1:]
for i in range(len(tweets)):
# only add if the cell in column D is empty
if wks.acell(f'D{i + 1}').value != 'ok':
tweet = tweets[i]
schedule = to_schedule(schedules[i])
sched.add_job(tuitar,'date',run_date=schedule,args=[tweet])
如何让每个作业只添加一次?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。