Я собираюсь построить распределенный кластер кодирования видео из нескольких десятков машин.Я никогда раньше не работал с очередью сообщений, но 2, с которыми я начал играть, были Gearman и Beanstalkd.
Beanstalk кажется намного проще и проще в использовании, чем Gearman, но он не так богат, как.
Одна вещь, которую я не понимаю, это ... как вы порождаете новых работников на всех серверах?Я планирую использовать php.Это так же просто, как запустить worker.php в CLI с «&» и просто сидеть там в ожидании работы?
Я заметил, что gearman на самом деле не убивает процесс после выполнения задания, но Beanstalk делает, поэтому мне приходится перезапускать скрипт после каждого задания на каждом сервере.
В настоящее время я более склонен к использованию Beanstalk, общий план действий, который я планировал, был:
Запускать мелкие кроны на каждом сервере, который проверяет, работает ли заранее определенное количество рабочих.Если его меньше, чем должно быть, появляются новые рабочие процессы.Каждый процесс займет примерно 2-30 минут.
Может быть, у меня есть недостаток в моей логике здесь?Дайте мне знать, что будет "лучшим" или "правильным" способом сделать это?