摘要:其實類似于如下例子,遍歷每個數(shù)字,每個作為一組這里是個基本思想就是遍歷的時候計數(shù),取??梢灾朗欠駶M足個,每個一發(fā)送。代碼如下分批發(fā)送省略上下文。
讀取一個 txt 文本文件,里面是一行一個 userid,需要給這些用戶發(fā)送文件(做什么不重要),發(fā)送文件接口支持一次最多發(fā) 10 個用戶,所以需要分批發(fā)送,每 10 個 userid 作為一批。
這種場景很常見,尤其是一次處理量太大了需要分批的情況。其實類似于如下例子,遍歷每個數(shù)字,每 5 個作為一組(這里是 10 個):
1 2 3 4 5 | 6 7 8 9 10 | 11 12 13 14 15 | 16 17 18
基本思想就是:遍歷的時候計數(shù),取??梢灾朗欠駶M足 10 個,每 10 個一發(fā)送。但是要注意最后如果存在剩余不足 10 個的情況不能漏了。代碼如下:
$uidFile = storage_path("app/public") . DIRECTORY_SEPARATOR . $task["uid_file"]; $count = 0; $max = 10; //分批發(fā)送 foreach (file($uidFile) as $line) { $userID = intval($line); if ($userID <= 0) { continue; } $userIDs[] = $userID; $count++; if ($count % $max == 0) { $this->sendMail($userIDs, $files, (string)$task["note"], (int)$task["reward"], $task); $userIDs = []; } } if ($userIDs) { $this->sendMail($userIDs, $files, (string)$task["note"], (int)$task["reward"], $task); }
省略上下文。
(隨手記錄一下代碼片段,以備日后參考,原文地址:https://blog.tanteng.me/2017/...)
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/26030.html
摘要:結(jié)束語在這里,我們雖然僅僅涉及了一些高階函數(shù)應(yīng)用的皮毛,但這兩個技巧,實是項目開發(fā)當(dāng)中克敵制勝,提高性能的實戰(zhàn)利器。 通過函數(shù)節(jié)流與函數(shù)分時提升應(yīng)用性能 在例如表單自動補全,數(shù)據(jù)埋點,文章內(nèi)容自動保存,視口監(jiān)聽,拖拽,列表渲染等高頻操作時,如果同時有其它UI行為占據(jù)線程,瀏覽器端時常會出現(xiàn)卡頓現(xiàn)象,服務(wù)器端也面臨著較大壓力。這時,函數(shù)節(jié)流,與函數(shù)分時將成為我們的一大輔助。 一、函數(shù)...
摘要:本書的地址篇收集了一些常見的基礎(chǔ)進階面試題,基礎(chǔ)的面試題不再作答。如何實現(xiàn)持久化持久化,將在內(nèi)存中的的狀態(tài)保存到硬盤中,相當(dāng)于備份數(shù)據(jù)庫狀態(tài)。相當(dāng)于備份數(shù)據(jù)庫接收到的命令,所有被寫入的命令都是以的協(xié)議格式來保存的。 本書的 GitHub 地址:https://github.com/todayqq/PH... PHP 篇收集了一些常見的基礎(chǔ)、進階面試題,基礎(chǔ)的面試題不再作答。 基礎(chǔ)篇 ...
摘要:遍歷完成后返回一個新的數(shù)組你可以同時處理多個數(shù)組你好嗎原罪你好嗎原罪是的,遍歷的次數(shù)以最長的數(shù)組為準(zhǔn)。假如你處理的是二維數(shù)組,處理方式也是萬變不離其宗的。 在PHP的日常操作中,數(shù)組是最常出現(xiàn)的結(jié)構(gòu),而我們幾乎每天都在處理數(shù)組相關(guān)的內(nèi)容。那么問題來了,你一般怎么遍歷并處理數(shù)組。 1、foreach 很熟悉吧,是不是你的最愛? $arr = [a, b, c]; foreach ($a...
摘要:如果運算持續(xù)占用主線程,頁面就沒法得到及時的更新。三解題思路解決主線程長時間被運算占用這一問題的基本思路,是將運算切割為多個步驟,分批完成。這顆新樹每生成一個新的節(jié)點,都會將控制權(quán)交回給主線程,去檢查有沒有優(yōu)先級更高的任務(wù)需要執(zhí)行。 歡迎關(guān)注我的公眾號睿Talk,獲取我最新的文章:showImg(https://segmentfault.com/img/bVbmYjo); 一、前言 在...
摘要:要不要顯式關(guān)閉查詢數(shù)據(jù)實現(xiàn)一實現(xiàn)二實現(xiàn)二更方便簡潔但是沒有顯式關(guān)閉有沒問題呢一些結(jié)論如果已被遍歷完會自動關(guān)閉無需顯式關(guān)閉所以實現(xiàn)二沒有問題如果只是遍歷了部分?jǐn)?shù)據(jù)需要顯式關(guān)閉在遍歷過程中同時處理其他業(yè)務(wù)邏輯需要在中關(guān)閉避免中間報了異常沒有迭代 cursor要不要顯式關(guān)閉 Mongo查詢數(shù)據(jù)實現(xiàn)一 MongoCursor cursor = collection.find().limit(l...
閱讀 2913·2021-11-23 09:51
閱讀 1562·2021-11-15 11:36
閱讀 3019·2021-10-13 09:40
閱讀 1914·2021-09-28 09:35
閱讀 13098·2021-09-22 15:00
閱讀 1381·2019-08-29 13:56
閱讀 2934·2019-08-29 13:04
閱讀 2706·2019-08-28 18:06