2013-08-30 2 views

ответ

3

Eventmachine Ticks в основном соответствуют каждому проходу цикла событий реактора. Использование next_tick будет запускать блок на следующем доступном прогоне реакторной петли. Wether это означает, что следующий фактический пробег, или, более вероятно, в какой-то момент в ближайшем будущем будет основан на том, есть ли другие события, которые ждут, чтобы их подхватили петлями реактора. Например, все блоки кода, в которых выполняется очередь с использованием add_timer или add_periodic_timer, затем обрабатываются другие события, такие как входящий сетевой трафик.

«Тик» в Eventmachine на самом деле не является измерением времени, это счетчик количества циклов реактора. Если у вас есть блокирующие операции в вашей петле реактора, то каждый тик займет больше времени для обработки.

Если вам нужно знать примерно, когда вы должны работать, используйте add_timer или add_periodic_timer instead of next_tick`. Но поскольку они не гарантируют, что петля реактора будет доступна в тот момент, когда должен срабатывать таймер, почти невозможно использовать Eventmachine для точных интервалов таймера.