Linux に詳しい友人は、crontab を使用して Linux でスケジュールされたタスクを設定できることを知っているはずです。 crontab -e コマンドを使用してタスクを作成できます。もちろん、構成ファイルを直接記述してタスクをセットアップすることもできます。
ただし、アプリケーションのデプロイ時など、スクリプトを通じて自動的に設定したい場合もあります。もちろん、ニーズがある場合は、それを解決する方法を見つけなければなりません。そうしないと、プログラマー (自己満足の猿のグループ) の世界に行き着くことになります。
それでは、ファイルを直接記述して設定していきたいと思います。ただし、ファイルの読み取りと書き込みは必然的に少し面倒になります。タスクを設定するときに、入力パラメータなどに従ってタスクが既に存在するかどうかを確認する必要があります。ファイルの読み書きは必然的に不適切になります。そこで私は「普遍的な」ビッグパイソンを考えました。
ダンダン、今日の主役は python-crontab モジュールです。インストールは簡単です
$ pip install python-crontab
以下のスクリプトでスケジュールされたタスクを簡単に設定できます
from crontab import CronTab # 创建当前用户的crontab,当然也可以创建其他用户的,但得有足够权限 my_user_cron = CronTab(user=True) # 创建任务 job = my_user_cron.new(command='echo date >> ~/time.log') # 设置任务执行周期,每两分钟执行一次 job.setall('*/2 * * * *') # 当然还支持其他更人性化的设置方式,简单列举一些 job.minute.during(5,50).every(5) job.hour.every(4) job.day.on(4, 5, 6) job.dow.on('SUN') job.dow.on('SUN', 'FRI') job.month.during('APR', 'NOV') job.setall(time(10, 2)) job.setall(date(2000, 4, 2)) job.setall(datetime(2000, 4, 2, 10, 2)) # 同时可以给任务设置comment,这样就可以根据comment查询,很方便 job.set_comment("time log job") # 根据comment查询,当时返回值是一个生成器对象,不能直接根据返回值判断任务是否#存在,如果只是判断任务是否存在,可直接遍历my_user_cron.crons iter = my_user_cron.find_comment('time log job') # 同时还支持根据command和执行周期查找,基本类似,不再列举 # 任务的disable和enable, 默认enable job.enable(False) job.enable() # 最后将crontab写入配置文件 my_user_cron.write()
以下のコマンドで作成が成功したかどうかを確認できます:
$ crontab -l
上記はこの記事の内容全体が皆さんの学習に役立つことを願っています。また、皆さんが php 中国語 Web サイトをサポートしてくれることを願っています。
Python crontab を使用して Linux のスケジュールされたタスクを設定する方法の詳細については、PHP 中国語 Web サイトの関連記事に注目してください。