Я хотел бы помочь понять, как использовать pheanstalk (php beanstalk client). У меня есть программа PHP, которая выполняется на сервере, когда данные формы отправляются на него. Затем программа PHP должна упаковать данные формы в виде структуры JSON и отправить ее на серверный процесс.
То, что я не понимаю, – это соединение с сервером beanstalkd. Должен ли я создавать новый объект Pheanstalk () каждый раз, когда выполняется программа PHP – в этом случае я беру на себя затраты на создание соединения. Когда соединение закрыто (поскольку в phheanstalk нет метода close ())?
Если соединение является постоянным, оно распределяется между всеми версиями программы PHP, и в этом случае, что происходит в случае одновременных обращений? Спасибо за любую помощь.
Да, вам нужно будет создать новое соединение с Pheanstalk (или любой другой библиотекой) при каждом запуске программы, так как PHP запускает каждый новый. Однако накладные расходы крошечные.
Процесс Beanstalkd оптимизирован, чтобы легко обрабатывать несколько соединений и будет действовать на них атомарно – вы не получите дублирующее задание, если вы не разместите там два одинаковых (и даже тогда они будут иметь разные идентификаторы заданий ).
Pheanstalk даже не передает данные демонам никакой информации (включая открытие соединения) до отправки первой команды. Именно по этой причине вы не можете сказать, жив ли демон, пока вы не будете активно делать запрос (в моих тестах я получаю список текущих трубок). Если вы продолжаете повторно использовать экземпляр класса в запущенной программе, то он будет продолжать использовать его, конечно.
Формального close()
, но unset($pheanstalk)
будет делать то же самое, управляя деструктором. Опять же, вызов является программным так временным, и демон может поддерживать так много одновременных подключений, если это разрешено, что это не проблема – и он будет закрыт, как сама программа.
Короче говоря, не волнуйтесь. Накладные расходы на подключение и отправку данных в Beanstalkd или из него, вероятно, будут крошечной частью любой работы, выполняемой рабочим или продюсером при создании запроса / ответа.