Несколько триггеров базы данных MongoDB в одном модуле Python - PullRequest
1 голос
/ 06 августа 2020

Я пытаюсь реализовать несколько триггеров базы данных для моего MongoDB (подключенного через Pymon go к моему Python коду).

Я могу успешно реализовать a триггер базы данных но не может распространить это на несколько.

Код для одного триггера базы данных можно найти ниже:

try:
    resume_token = None
    pipeline = [{"$match": {"operationType": "insert"}}]
    with db.collection.watch(pipeline) as stream:
        for insert_change in stream:
            print("postprocessing logic goes here")
except pymongo.errors.PyMongoError:
    logging.error("Oops")

Проблема в том, что после реализации единой базы данных сообщение код обработки ожидает получения входящих запросов для этой коллекции, и я могу включить другие часы коллекции в тот же модуль.

Любая помощь приветствуется

1 Ответ

0 голосов
/ 07 августа 2020

Создайте отдельные функции для каждых часов и запускайте их в отдельных потоках примерно так:

import queue
import threading

main_q = queue.Queue()
thread1 = threading.Thread(target=function1, args=(main_q, None))
thread1.daemon = True
thread1.start()

thread2 = threading.Thread(target=function2, args=(main_q,))
thread2.daemon = True
thread2.start()
...