У меня ситуация, когда я хочу запустить несколько EventMachines в Ruby - есть ли у кого-нибудь опыт работы с этим? (Я могу написать тестовый пример, чтобы сделать это сам, если нет. Следите за обновлениями).
Давайте проясним: я хочу сам создать экземпляры двух потоков и вызвать EventMachine.run
в обоих потоках, так что у меня действительно есть два цикла реактора.
Причина в том, что я пишу асинхронную шину сообщений с гемом AMQP, который использует EventMachine. Это нормально, но я хочу сделать его отдельным модульным компонентом, который можно использовать в двух приложениях:
- в том, который имеет собственный блокирующий цикл графического интерфейса пользователя (который не может быть смоделирован путем вызова тика из EventMachine - он действительно блокируется, и он делает это в библиотеке C, поэтому я не могу его взломать). Это просто - просто запустите EM в его собственном потоке и делитесь входящими сообщениями между циклами потокобезопасным способом;
- и другое приложение, которое само работает в цикле реактора, которое я потенциально может делиться с кодом AMQP (что хорошо для проблем безопасности потоков, хотя я все равно должен решить их для вышеуказанного приложения). Это тот, который заставил меня задуматься ...Могу ли я поделиться кодом шины сообщений с указанным выше приложением, запустив две отдельные машины EventMachines?
У кого-нибудь есть мысли?
задан Matt 23 November 2011 в 19:03
поделиться