Tôi nghĩ ý tưởng của bạn chính xác là những gì bạn muốn. Ví dụ:
import time
def do_something():
with open("/tmp/current_time.txt", "w") as f:
f.write("The time is now " + time.ctime())
def run():
while True:
time.sleep(60)
do_something()
if __name__ == "__main__":
run()
Cuộc gọi tới time.sleep(60)
sẽ đưa chương trình của bạn ngủ trong 60 giây. Khi thời gian đó kết thúc, hệ điều hành sẽ đánh thức chương trình của bạn và chạy hàm do_something()
, sau đó đặt nó trở lại trạng thái ngủ. Trong khi chương trình của bạn đang ngủ, nó không làm gì hiệu quả lắm. Đây là một mô hình chung để viết các dịch vụ nền.
Để thực sự chạy này từ dòng lệnh, bạn có thể sử dụng &:
$ python background_test.py &
Khi làm điều này, bất kỳ đầu ra từ kịch bản sẽ đi đến nhà ga giống như một trong những bạn bắt đầu nó từ. Bạn có thể chuyển hướng đầu ra để tránh điều này:
$ python background_test.py >stdout.txt 2>stderr.txt &
Nguồn
2011-01-09 03:31:42
Tùy thuộc vào những gì bạn muốn. Nếu bạn muốn lên lịch một tác vụ lặp lại thường xuyên, hãy xem cron. – Falmarri