使用swoole非同步傳送郵件

2021-07-23 18:31:12 字數 1291 閱讀 7489

傳送郵件的操作一般是比較耗時的,所以我們一般採用非同步或者佇列來執行。

php使用redis的publish/subscribe也是一種不錯的選擇,這在以前的一篇博文中寫過。

php語言本身是不支援非同步操作的,不過我們可以通過swoole擴充套件實現非同步功能,這個非同步功能基於tcp協議,相應速度還是不錯的。

$serv = new swoole_server("127.0.0.1", 9501);

//設定非同步任務的工作程序數量

$serv->set(array('task_worker_num' => 4));

$serv->on('receive', function

($serv, $fd, $from_id, $data) );

//處理非同步任務

$serv->on('task', function

($serv, $task_id, $from_id, $data) );

//處理非同步任務的結果

$serv->on('finish', function

($serv, $task_id, $data) );

$serv->start();

function

write

($str)

function

handlefun

($data)

<?php

class

client

//向伺服器傳送資料

if (!$client->send($msg))

//關閉連線

$client->close();

}private

function

write

($str)

}

<?php

include "synclient.php";

$params = array();

$params['subject'] = "世界你好";

$params['content'] = "四姐你好啊,我是三哥,哈哈哈哈哈哈";

$params['mailto'] = "799631071";

$msg = json_encode($params);

$client = new client();

$client->send($msg);

echo "[".date("y-m-d h:i:s")."]繼續忙其他的".php_eol;

非同步傳送郵件

using system using system.collections.generic using system.web using system.net.mail using system.text 傳送郵件類 public class smtpmail void client sendcom...

非同步傳送郵件

利用django自帶的 mail 介面傳送郵件 1 from django.core.mail import emailmultialternatives 2from threading import timer34 def send mail title,content,to list,cc li...

Ajax 非同步傳送郵件

很多系統中,需要實現,提交表單同時傳送郵件通知相關人員的要求.特別在類似oa系統更加常見.而一般傳送郵件都會占用比提交表單 後台對資料處理的時間多很多.想到兩個思路 1.ajax非同步傳送郵件.2.郵件資訊持久化到資料庫,資料庫定時讀取郵件資訊,傳送郵件 現在使用第一種方式 ajax非同步傳送郵件....