微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

APScheduler 不会每次都添加相同的作业

如何解决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 举报,一经查实,本站将立刻删除。