【发布时间】:2020-10-29 17:44:20
【问题描述】:
我正在编写一个 cron 作业,它将每分钟运行一次,以在某种条件下向用户发送 Firebase 通知(如果存储在数据库中的时间小于当前开发时间。在生产中,如果存储时间等于当前时间)。在cron作业的句柄函数中,我有以下代码
public function handle()
{
// get current time
$current_time = Carbon::now()->format('H:i:00');
// get all daily_checks's user_id where time matches current time
$matched_check_user_id = DailyCheck::where('time', '<', $current_time)->pluck('user_id')->toArray();
\Log::debug($matched_check_user_id);
\Log::debug(gettype($matched_check_user_id));
// get fcm_tokens of matched user_ids
$fcm_tokens = Device::whereIn('user_id', '=', $matched_check_user_id)->pluck('fcm_token')->toArray();
// send firebase notifications
\Log::debug($fcm_tokens);
}
请考虑两张桌子。我比较发送通知的时间的 daily_checks 表和存储 fcm_token 的 devices 表。两者都有 user_id 作为外键。
首先,我从满足我的时间条件的 daily_checks 获取所有用户 ID。
$matched_check_user_id = DailyCheck::where('time', '<', $current_time)->pluck('user_id')->toArray();
然后,我尝试在遇到错误的地方获取匹配的 user_ids 的 Fcm_tokens
$fcm_tokens = Device::whereIn('user_id', '=', $matched_check_user_id)->pluck('fcm_token')->toArray();
我已经记录了所有结果。这是日志文件的截图
【问题讨论】:
-
嗨,S. Farooq,您仍然收到此错误吗?
标签: laravel cron taskscheduler