Сценарий запуска Python в X: 00 - PullRequest
       21

Сценарий запуска Python в X: 00

0 голосов
/ 21 сентября 2010

продолжение,

С питоном: интервалы в x: 00 повтор

Используя многопоточность, Как я могу заставить скрипт работать, начиная с 8:00 утра, заканчивать работу в 17:00

Решение должно быть закодировано в Python и быть переносимым

Тиа

Ответы [ 3 ]

3 голосов
/ 22 сентября 2010

Модуль 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". Вот как код должен быть адаптирован для этой цели: </p>

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]) и так далее

2 голосов
/ 21 сентября 2010

используйте cron . Если в Windows используется планировщик задач Windows .

0 голосов
/ 22 сентября 2010

в 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 для сброса настроек по умолчанию (никакие команды не будут выполняться)

...