Цикл не работает с многопроцессорностью и спящим режимомPython

Программы на Python
Ответить
Anonymous
 Цикл не работает с многопроцессорностью и спящим режимом

Сообщение Anonymous »

Я знаю, что этот вопрос уже задавался. Но я не могу дать ответ, который сработал бы как шарм...
У меня есть процесс, в котором я выполняю цикл while. Но это не зацикливается. Он делает один оборот, а потом... Я не знаю. Это мой цикл:

Код: Выделить всё

import os
import time
import signal
import getdata
import twitter
import multiprocessing

collector = getdata.collectData(0)  # Pour récupérer les données
botter = twitter.twitter()  # Pour tweeter

def data_update_loop():
while True:
print 'Tour de boucle!'
start = time.time()  # On calcule le temps d'éxecution

global collector, botter

collector.write_data()
botter.hourly_message()

done = time.time()  # On stope le chrono

# On s'assure que le programme attende bien une demie-heure
time.sleep(1800 - (done - start))

def abort():
f = open('RUNNING.txt', 'r')
process = f.readline()
process = filter(None, process.split(","))

try:
for p in process:
os.kill(int(p), signal.SIGQUIT)
finally:
f.close()
os.remove('RUNNING.txt')

def main():
if not os.path.isfile('RUNNING.txt'):
f = open('RUNNING.txt', 'w+')

data_update = multiprocessing.Process(target=data_update_loop)

data_update.start()

# On écrit les PIDs pour pouvoir fermer les process après
f.write('{},{}'.format(data_update.pid, mentions_update.pid))
f.close()

choice = raw_input('Press X to abort all processes: ')
if choice.upper() == 'X':
abort()

else:
print 'Please restart the program.'
os.remove('RUNNING.txt')

if __name__ == '__main__':
try:
main()
except KeyboardInterrupt:
abort()
Можете ли вы объяснить мне, почему? Я знаю, что дело в процессоре...

Спасибо за ответы!

Подробнее здесь: https://stackoverflow.com/questions/322 ... -and-sleep
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»