小编San*_*het的帖子

了解Laravel 5.2上的队列和调度程序

我正在尝试如何在Laravel上写作业.

在Laravel文档之后,我创建了一个使用mail:queue发送电子邮件的简单作业.

我还添加了一个cron作业,它将每分钟调用一次调度程序,然后每5分钟运行一次该作业.

当我手动运行命令队列时,一切正常:listen.

后来我在调度程序中添加了一个print语句,我发现了一个奇怪的问题.

每当我运行队列时:从终端监听,我看到日程安排功能内的打印消息,每5秒打印一次.

所以我的问题是队列:听调用日程功能?如果是,为什么我们需要添加计划:作为一个cron工作运行

我使用的代码:

protected function schedule(Schedule $schedule){     
    error_log("inside scheduler");
    $schedule->call(function () {
        dispatch(new \App\Jobs\SendEmail);
    })->everyFiveMinutes();              
}
Run Code Online (Sandbox Code Playgroud)

这是我在终端上运行的命令.

php artisan queue:listen
Run Code Online (Sandbox Code Playgroud)


在调度
程序
内部调度程序 内的调度程序 内得到的输出(每5秒) ...

有人能解释一下这里发生了什么吗?

- 添加作业代码以更好地理解
SendEmail.php

 public function handle() {
 //do some task here
 Mail::queue("emails.send_update", [], function($message) {
  $message->to("someone@somedomain.com");
  $message->subject('Status has been updated');
 });
 }
Run Code Online (Sandbox Code Playgroud)

laravel laravel-5.2

3
推荐指数
1
解决办法
5386
查看次数

Yajra Laravel Datatable - 合并列值

我在我的Laravel项目中包含了Yajra Datatables并且工作正常.

问题是我需要合并3个列值并将它们显示为1并允许同时搜索.

我怎么做?

我能够使用渲染功能并在单个列中显示数据.但那么如何搜索?

示例Mysql表:

student_master(fname,mname,lname)
Run Code Online (Sandbox Code Playgroud)

在javascript我有:

columns: [
    {data: 'thiscanbeanything', render:function ( data, type, row ) {                        
                return row.fname+row.mname+row.lname;
            }},
]
Run Code Online (Sandbox Code Playgroud)

我在控制器上的Ajax功能如下所示

 $results = DB::table("student_master")
            ->select(['fname', 'mname', 'lname']);

    return Datatables::of($results)                        
                    ->make(true);
Run Code Online (Sandbox Code Playgroud)

datatables laravel

0
推荐指数
1
解决办法
3630
查看次数

标签 统计

laravel ×2

datatables ×1

laravel-5.2 ×1