使用APSchedu设置cron作业时,Func必须是可调用的

2024-05-23 15:51:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我的目的是每周在凌晨2点到6点之间的随机时间,从一个列表中随机发送一条消息。我正在使用APScheduler:

sched.add_cron_job(postTweet(messages[random.randint(0, len(messages))]), day_of_week="0-6/6", hour='2-6/3')

我得到了一个错误:

^{pr2}$

我不知道这个错误意味着什么,更不知道该如何修正它了。如果能从中得到启示,我们将不胜感激。在

编辑:

postTweet的代码:

def postTweet(message):
    log = open('log', 'a')
    log.write("\nMessage being tweeted: %s \n" % message)
    print "Message being tweeted: %s" % message
    twitter.statuses.update(status=message)
    log.close()

Tags: 目的logadd消息message列表错误时间
2条回答

我知道我迟到了,但我想帮助像我这样的人。在

可以使用args作为

scheduler.add_job(postTweet, day_of_week="0-6/6", hour='2-6/3' args='Your Payload as dict')

你的func不是一个函数,就像它说的那样。您正在调用PostTweet,并将结果(可能是一个字符串或None,但绝对不是函数)传递给add_cron_job。那条狗不会打猎的,先生。在其前面粘贴lambda:

sched.add_cron_job(lambda: postTweet(messages[random.randint(0, len(messages))]),
                   day_of_week="0-6/6", hour='2-6/3')

这将创建一个可以在以后调用的函数,而不是在添加作业之前执行它。在

相关问题 更多 >