最近常常用 PHP / Laravel 寫匯入資料的程式。為了效率起見,通常一開始就會使用 csv 格式,但這格式並不是萬能的,當資料量從 1 筆提升到 30000 筆,需要不斷調整程式才能妥善處理。
不過還是在開發之前就先抓好資料量是最好的啦🥲
Read More »最近常常用 PHP / Laravel 寫匯入資料的程式。為了效率起見,通常一開始就會使用 csv 格式,但這格式並不是萬能的,當資料量從 1 筆提升到 30000 筆,需要不斷調整程式才能妥善處理。
不過還是在開發之前就先抓好資料量是最好的啦🥲
Read More »Laravel 提供簡單好用的 API,
比如它的 ORM 讓你能用 paginate() 拿到 LengthAwarePaginator
它的 links() 能直接 render 出分頁功能的 HTML
專案上線 N 年後,資料量大了,可能會遇到分頁越來越慢的狀況,
這篇文章會描述一下我考慮解決方法的思路
最近在做兩個專案,他們有父子關係,其中子專案在註冊會員後,需要丟 job 給 父專案執行
雖然兩個專案使用同一台 redis 作為 queue,但 laravel 預設會把 job 存在 redis 中下面這個 key 的位置:
env(‘REDIS_PREFIX’, Str::slug(env(‘APP_NAME’, ‘laravel’), ‘_’).’_database_’)
// APP_NAME=laravel
// output => laravel_database_queue
可以看到想讓兩個專案真正讀取同一個 queue,就必須在 .env 裡面自訂 REDIS_PREFIX
接著,父子專案還要建立相同名稱的 job(ex: App\Jobs\TestJob),然後由子專案 dispatch job,由父專案執行 php artisan queue:work
當然父跟子沒有絕對,要不要寫 dispatch()->onQueue() 也沒有絕對