Я постараюсь сделать то, что я пытаюсь сделать, максимально простым.
У меня есть два класса ClassA
и ClassB
ClassA
имеет метод экземпляра, содержащий цикл while, который работает «бесконечно» и собирает данные. ClassA
также передается экземпляр ClassB
. В то время как ClassA
собирает эти данные, он также проверяет поступающие данные, чтобы увидеть, был ли получен определенный сигнал. Если сигнал получен, вызывается метод экземпляра в ClassB
.
Рассмотрим следующий драйвер основной программы:
from class_a import ClassA
from class_b import ClassB
database_connection = MongoDB #purely example
class_b = ClassB(database_connection)
class_a = ClassA(class_b)
А потом классы:
Class class_a:
def __init__(self, class_b):
self.class_b
def collect_data(self):
while True:
data = receiver()
if (signal in data):
self.class_b.send_data_to_database(data)
Class class_b:
def __init__(self, database):
self.database = database
def convert_data(self, data):
return data + 1
def send_data_to_database(data):
converted_data = convert_data(data)
self.database.send(converted_data)
Теперь вот мой вопрос. Должен ли я иметь поток для метода экземпляра send_data_to_database() в классе B? Мой мыслительный процесс заключается в том, что, возможно, создание потока только для обработки отправки данных в базу данных будет быстрее, ЧЕМ метод экземпляра НЕ является потоком. Мое мнение здесь неправильное? Мои познания в трединге ограничены. В конечном счете, я просто пытаюсь найти самый быстрый способ отправки данных в базу данных после того, как класс A распознает, что в данных есть сигнал. Спасибо всем ответившим заранее.
... -> receive -> check -> send -> receive -> ...
. Выгрузка одиночного действия в поток, например. send, как правило, не стоит — запуск потока занимает больше времени, чем просто выполнение действия напрямую. - person MisterMiyagi   schedule 19.06.2019ClassA
не засыпает между запусками сбора данных. Чтобы не усложнять, это в значительной степени приложение (помимо обрабатываемых данных). Нет значительного риска отставания в сборе данных; Моей главной заботой является возможность отправлять данные как можно быстрее после получения этого сигнала. - person Kyle DeGennaro   schedule 19.06.2019