这代码需要优化吗 
                            
                                                    
                        
                    
                    
  
                    
                    下面是一个定时任务,半小时执行一次,然后会给用户发送邮件,这块代码有什么地方能提升的,或者优化的?
    public function handle()
    {
        Log::info('order_send_care_mails======================start');
        $cur_time = Carbon::now()->format('Y-m-d');
        O::where('send_number', '<', 3)->where('expected_time','=',$cur_time)
            ->chunk(100, function ($result) {
                $care_mails = config('care_mails');
                foreach ($result as $row) {
                    $send_number = $row->send_number + 1;
                    $type = $this->type[$send_number]['type'];
                    $view_template = 'email.' . $row->lang . '.care.' . $type;
                    //获取标题
                    $title = '';
                    if (isset($care_mails[$row->lang]["{$type}_title"])) {
                        $title = $care_mails[$row->lang]["{$type}_title"];
                    }
                    if (stripos($title, '{{product_name}}') !== false) {
                        $title = str_replace('{{product_name}}', $row->product_name, $title);
                    }
                    //处理内容
                    $link = [];
                    if (isset($care_mails[$row->lang]['link'][$row->product_name])) {
                        $link = $care_mails[$row->lang]['link'][$row->product_name];
                        if (!empty($row->product_feature) && isset($link[$row->product_feature])) {
                            $link = $link[$row->product_feature];
                        }else{
                            continue;
                        }
                    }
                    if (empty($link['Reached']) || empty($link['Guide']) || empty($link['FAQ'])){
                        continue;
                    }
                    $body = view($view_template, [
                        'link' => $link,
                        'name' => $row->name,
                        'product_name' => $row->product_name,
                        'version' => $row->version
                    ])->render();
                    //发送邮件
                    self::sendmail($row->email, $title, $body, $send_number);
                    //更新数据
                    $row->send_number = $send_number;
                    $row->expected_time = self::getNextExpectedTime($send_number, $row->created_at);
                    $row->send_time = date("Y-m-d H:i:s");
                    $row->save();
                }
            });
        Log::info('order_send_care_mails======================end');
    }
    public function sendmail($email, $title, $body, $send_number)
{
    Log::info($email . ' ' . $title);
  $form = $this->type[$send_number];
  Mail::queue(new \App\Mail\Common\Send($form['email'], $email, $form['name'], $title, $body));
  } 
           
         
                     
                     
             
         
             
             
             
             
             
             
            



 
             
             
             
             
             
             
             
             
           
           关于 LearnKu
                关于 LearnKu
               
                     
                     
                     粤公网安备 44030502004330号
 粤公网安备 44030502004330号 
 
推荐文章: