Рубрики
Uncategorized

PHP использует немецкий язык для асинхронной отправки сообщений или сообщений

Автор оригинала: David Wong.

В этой статье описывается пример PHP с использованием gearman для асинхронной отправки почты или SMS. Подробности заключаются в следующем:

1, Подготовка

1. Чтобы предотвратить простои в процессе обработки бизнеса, пожалуйста, настройте постоянный режим gearman. 2. Используйте немецкий менеджер для управления нашими рабочими сценариями для удобства тестирования.

Пожалуйста, прочтите две статьи, которые я написал ранее

2. Написание тестовых сценариев

Код отправки почты. php выглядит следующим образом:

workload(), true);
  
  //Here we simulate the process
  //For specific business, this should be the interface for sending e-mail request. Here is just a demonstration
  sleep(1);
  
  Echo "workid: {$workid} successfully sent {$data ['email ']} n";
}

В client.php код выглядит следующим образом:

addServer('127.0.0.1', 4730);

$cnt = 5000;
$ret = array();

//Circulates 5000 messages
for($i = 0; $i < $cnt; ++$i) {
  //Dobackground asynchronously returns the handle of the submitted task
  $ret[$i] = $client->doBackground('sendEmail', json_encode(array(
    'email' => "{$i}@qq.com",
    'title '= > "email Title {$I}",
    'body' = > "I am content {$I}",
  )));
}

3, Изменение информации о конфигурации в немецком менеджере

Мой менеджер gearman установлен в разделе/данные/Менеджер gearman/

> vi /data/GearmanManager/etc/GearmanManager.ini

Чтобы добавить следующую информацию, мы запускаем пять процессов отправки электронной почты

[sendEmail]
; Specify 5 processes
dedicated_count=5
; All five processes only do sendemail work
dedicated_only=1

4, Начните с немецкого

> gearmand -d -q mysql \
--mysql-host=192.168.1.100 \
--mysql-port=3306 \
--mysql-user=gearman \
--mysql-password=123456 \
--mysql-db=gearman \
--mysql-table=gearman_queue &

5, Запустите диспетчер передач

> cd /data/GearmanManager
> ./bin/pecl_manager.php -c /data/GearmanManager/etc/GearmanManager.ini -vvv

6, Запуск client.php

> /data/php56/bin/php /data/client.php

Когда мы говорим о МИРЕ, Когда manager.php выполняет Ctrl + C, работник вынужден закрыться, и client.php все еще может отправлять запросы нормально, но данные сохраняются в MySQL. Когда мы перезапустим работника, gearman перезагрузит необработанный для обработки.

Мой MySQL установлен на хосте, а виртуальная машина установлена на немецком языке. Если друг обнаружит, что Германия не может подключиться к MySQL, он может временно отключить брандмауэр win10 и включить эхо проверки win10.

Для получения дополнительной информации о PHP читатели, интересующиеся этим сайтом, могут ознакомиться со следующими темами: краткое описание навыков работы с процессами и потоками PHP, краткое описание навыков сетевого программирования PHP, вводный курс базового синтаксиса PHP, полная коллекция навыков работы с массивами PHP, краткое описание использования строк PHP “Руководство по работе с базой данных PHP + MySQL” и “Краткое описание навыков работы с общей базой данных PHP”

Я надеюсь, что эта статья будет полезна для программирования на PHP.