Продолжая,
С python: интервалы с повторением x: 00
Используя потоки, как я могу заставить скрипт запускаться с 8:00 утра, перестать запускать в 17:00
Решение должно быть написано на Python и быть переносимым.
тиА
Продолжая,
С python: интервалы с повторением x: 00
Используя потоки, как я могу заставить скрипт запускаться с 8:00 утра, перестать запускать в 17:00
Решение должно быть написано на Python и быть переносимым.
тиА
В модуле time
есть функция asctime
, которая может быть вам полезна:
>>> from time import asctime
>>> asctime()
'Tue Sep 21 17:49:42 2010'
Итак, вы можете включить в свой код что-то вроде следующего:
sysTime = asctime()
timestamp = systime.split()[3]
separator = timestamp[2]
hour = timestamp.split(separator)[0]
while hour < 8:
# just wait
sysTime = asctime()
timestamp = systime.split()[3]
separator = timestamp[2]
hour = timestamp.split(separator)[0]
# now, it's just become 8:00 AM
while hour < 17: # until 5:00 PM
sysTime = asctime()
timestamp = systime.split()[3]
separator = timestamp[2]
hour = timestamp.split(separator)[0]
# start your thread to do whatever needs to be done
Запустите этот сценарий один раз и позвольте ему работать вечно.
Это ответ на вопрос @ user428862, который спрашивает, можно ли это запустить с «часом> 8 и часом‹ 17 ». Вот как нужно адаптировать код для этой цели:
while 1:
sysTime = asctime()
timestamp = systime.split()[3]
separator = timestamp[2]
hour = timestamp.split(separator)[0]
minute = timestamp.split(separator)[1]
if (hour > 8) and (hour<17 and minute<1):
# start your thread to do whatever needs to be done
Кроме того, мне просто пришло в голову, что я использовал разделение строк, и это возвращает строки, поэтому hour
должно быть int(timestamp.split(separator)[0])
и так далее.
в cron, и вам нужно запустить скрипт, начиная с 8:00, прекратить работу в 17:00, используйте команду crontab -e в Linux. и добавьте этот код строки для
* 8 * * * /YOUR/PATH/SCRIPT
и вы остановите его в 17:00, в этом примере мы убьем весь процесс python в 17:00.
* 17 * * * killall -9 /usr/bin/python
и вы можете проверить crontab с помощью crontab -l и crontab -r для сброса до значения по умолчанию (никакие команды не будут выполнены)