Форум сайта python.su
Приветствую Python-сообщество.
Хочу задать вопрос следующего содержания. Хочу сделать примерно следующий функционал. Нужно чтобы при старте сервера включалась очередь которая обрабатывалась когда в нее что-то поступало. Как мне такое организовать? Что и от куда лучше класть чтобы такое работало.
Для наглядности приведу предполагаемый код.
Очередь будет примерно следующего содержания:
class ImportThread(Thread):
def __init__(self, import_product_query):
Thread.__init__(self)
self.import_query = import_query
self.total_imported = 0
def run(self):
time.sleep(10)
while True:
if self.import_query.total() > 0:
try:
import_data = self.import_query.get()
except Exception, e:
log.exception(e)
finally:
pass
time.sleep(0.5)
else:
time.sleep(10)
def get_status(self):
return (self.import_query.total(), self.total_imported)
class ImportQuery(object):
def get(self):
pass
def total(self):
pass
def total_imported(self):
pass
def get_status(self, company_id, key_uniq=None):
pass
Офлайн
может лучше по крону?
Офлайн
lorien, что за софт? Это что-то Джанговское?
Офлайн
pyOut
http://celeryproject.org/
или банальный крон, что есть проще. Ибо “Simple is better than complex.”
Офлайн
slav0nic, на сколько крон будет более эффективен/не эффективен по сравнение с тем же celeryproject?
Если пользоваться кроном то мне надо будет проверять тред на наличие поступивших в него потоков каждую секунду. Правильно?
Офлайн
ну каждую секунду - глупо, но в целом да, я не знаю какие у тебя задачи и на сколько это критично.
Офлайн