关闭后保持程序运行

时间:2017-02-16 08:03:36

标签: python tweepy

我正在制作推特营销计划,我希望能够安排推文。我有脚本工作,但一旦我把它放入界面,程序完成,我希望能够安排一条推文说,一小时后,并能够完全关闭我的电脑,仍然有推文帖子如果安排。因为我现在有了它,如果我让脚本继续运行它会在我说的时候发布,但如果我关闭它就不会。这是Tweepy授权后的代码

api = tweepy.API(auth)
tweet = raw_input("what do you want to tweet in 1 hour?")
print "you have scheduled your tweet for 1 hour"
sched = True
while sched is True:
    time.sleep(3600)
    api.update_status(tweet)
    sched = False
if sys.exit:
    continue
提前谢谢。正如你所看到的,我试图在sys.exit之后继续执行该程序,但这不起作用

4 个答案:

答案 0 :(得分:-1)

如何使用nohup或cron作业?

答案 1 :(得分:-1)

在你要求的方式中,这是不可能的。如何在计算机完全关闭电源后运行程序?

如果您的Twitter帐户存在信用卡,您可以使用Scheduled Tweets提前发送推文,并让Twitter在预定义时刻发布。我不确定是否有API。

答案 2 :(得分:-1)

继续:

  

继承语句,也是从C借来的,继续循环的下一次迭代

因此它不会继续已经关闭的实例。

链接:Python Docs 链接时间表:Schedule Github

由于你要求一个像调度系统这样的Cron的例子,为什么不安排: 但你仍然需要一台正在运行的电脑

import schedule
import time

def job():
    print("test")

schedule.every(x).minutes.do(job)
while True:
    schedule.run_pending()
    time.sleep(1)

答案 3 :(得分:-1)

你可以使用python-daemon,但只能用于linux platofrm。:

#!/usr/bin/python
import time
from daemon import runner
api = tweepy.API(auth)
class App():
    def __init__(self):
        self.stdin_path = '/dev/null'
        self.stdout_path = '/dev/tty'
        self.stderr_path = '/dev/tty'
        self.pidfile_path =  '/tmp/foo.pid'
        self.pidfile_timeout = 5
    def run(self):
        while True:
            time.sleep(3600)
            api.update_status(tweet)


app = App()
daemon_runner = runner.DaemonRunner(app)
daemon_runner.do_action()

这里do_action是内部调用运行函数。

然后用命令" ./ filename.py start"启动它,并用" ./ filename.py stop"停止它。 但在断电后机器守护程序停止。所以你需要在重启机器后手动启动。