Сообщение Re[2]: Образцово-показательный интерфейс для EventBus от 23.11.2021 19:58
Изменено 24.11.2021 4:46 Shmj
Re[2]: Образцово-показательный интерфейс для EventBus
Здравствуйте, Ночной Смотрящий, Вы писали:
НС>
Вот, кстати, этот момент у вас наиболее неочевидный.
Вы передаете CancellationToken, он умеет отменять как сам процесс подписки так и, очевидно, выполнение обработчика (который тоже принимает CancellationToken). Так почему же не использовать его и для отмены подписки?
И еще вопрос. Вы внутри метода SubscribeAsync, очевидно, вызываете подтверждение обработки события. Так? У меня это отдельный метод.
Так вот вопрос — у вас для каждого нового события создается новая задача или поток? И обработку следующего вы начинаете только после того, как закончили с предыдущим? Или же обрабатываете параллельно? У это можно выбрать.
НС>
НС> // IMPORTANT: dispose the returned result to stop the subscription.
НС> // cancellation WILL NOT cancel the subscription after subscribe completion.
НС> // IMPORTANT: use parameters.SubscriptionFailedCallback to handle non-recoverable subscription failures.
НС>
Вот, кстати, этот момент у вас наиболее неочевидный.
Вы передаете CancellationToken, он умеет отменять как сам процесс подписки так и, очевидно, выполнение обработчика (который тоже принимает CancellationToken). Так почему же не использовать его и для отмены подписки?
И еще вопрос. Вы внутри метода SubscribeAsync, очевидно, вызываете подтверждение обработки события. Так? У меня это отдельный метод.
Так вот вопрос — у вас для каждого нового события создается новая задача или поток? И обработку следующего вы начинаете только после того, как закончили с предыдущим? Или же обрабатываете параллельно? У это можно выбрать.
Re[2]: Образцово-показательный интерфейс для EventBus
Здравствуйте, Ночной Смотрящий, Вы писали:
НС>
Вот, кстати, этот момент у вас наиболее неочевидный.
Вы передаете CancellationToken, он умеет отменять как сам процесс подписки так и, очевидно, выполнение обработчика (который тоже принимает CancellationToken). Так почему же не использовать его и для отмены подписки?
И еще вопрос. Вы внутри метода SubscribeAsync, очевидно, вызываете подтверждение обработки события. Так? У меня это отдельный метод.
Так вот вопрос — у вас для каждого нового события создается новая задача или поток? И обработку следующего вы начинаете только после того, как закончили с предыдущим? Или же обрабатываете параллельно? Вопрос очень важный — что если я хочу, чтобы обработчики работали одновременно, а не в один поток? Или еще больше — что если я хочу ограничить количество одновременных потоков для обработчиков — сделать очередь?
НС>
НС> // IMPORTANT: dispose the returned result to stop the subscription.
НС> // cancellation WILL NOT cancel the subscription after subscribe completion.
НС> // IMPORTANT: use parameters.SubscriptionFailedCallback to handle non-recoverable subscription failures.
НС>
Вот, кстати, этот момент у вас наиболее неочевидный.
Вы передаете CancellationToken, он умеет отменять как сам процесс подписки так и, очевидно, выполнение обработчика (который тоже принимает CancellationToken). Так почему же не использовать его и для отмены подписки?
И еще вопрос. Вы внутри метода SubscribeAsync, очевидно, вызываете подтверждение обработки события. Так? У меня это отдельный метод.
Так вот вопрос — у вас для каждого нового события создается новая задача или поток? И обработку следующего вы начинаете только после того, как закончили с предыдущим? Или же обрабатываете параллельно? Вопрос очень важный — что если я хочу, чтобы обработчики работали одновременно, а не в один поток? Или еще больше — что если я хочу ограничить количество одновременных потоков для обработчиков — сделать очередь?