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 (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...