使用极光推送发布定时消息,每次都需要重新执行php artisan schedule:run才会生效,求各位大佬相助

如图,没添加一条定时的消息,都需要重新在命令行执行命令,才能收到推送的消息

 提交消息的时候,去执行php artisan schedule:run 这段代码 能成吗

在服务启动之前,我已经执行过一次了,添加完消息之后,发现没有作用,又执行了一次,然后有效果了


我这样的做法有问题吗


我的意思是 你提交这个任务的时候,去触发一下php artisan schedule:run

请教大佬具体怎么实现呢

exec("php artisan schedule:run",$out);
print_r($out);
但这样好像不是很安全...
这样是危险的,你应该另寻出路...


贴一下我的代码


如果没有选择发送时间............如果选择了发送时间 你怎么做的?..空啊

如果没有选择发送时间,那么就立即发送


是不是少了函数调用..

分号前面加()试一试

不能加呀兄弟,加了直接报错

....你是不是应该先设置 发送时间,然后再发送...

对,是这样操作的


new直接 JPush::pushMessageByAlias呢..
<?php
/**
 * Created by PhpStorm.
 * User: huangzhicheng
 * Date: 2018/8/28
 * Time: 下午3:12
 */

namespace data\tools;

use data\tools\config\Output;
use JPush\Client as Client;

class JPush
{
    /**
     * 通过别名发送极光推送消息
     * @param $title // 标题
     * @param $content // 内容
     * @param $alias // 别名
     * @param array $params // 扩展字段
     * @param string $ios_badge // ios 角标数
     * @param array $platform // 推送设备
     * @return array|bool
     * @author huangzhicheng 2018年08月29日
     */
    public static function pushMessageByAlias ($title, $content, $alias, $params = [], $ios_badge = '0', $platform = ['ios', 'android'])
    {

        if (!is_array ($alias)) return false;
        $jpush_conf = Output::getJPushKey (); // 获取配置信息 app_key 和 master_secret

        $app_key = $jpush_conf[ 'app_key' ];
        $master_secret = $jpush_conf[ 'master_secret' ];
        try {
            // 初始化
            $client = new Client($app_key, $master_secret);

            $result = $client->push ()
                ->setPlatform ($platform)
                ->addAlias ($alias)
                ->iosNotification (
                    $content, [
                    'sound' => '1',
                    'badge' => (int)$ios_badge,
                    'content-available' => true,
                    'category' => 'jiguang',
                    'extras' => $params,
                ])
                ->androidNotification ($content, [
                    'title' => $title,
                    //'build_id' => 2,
                    'extras' => $params,
                ])
                ->options ([
                    'sendno' => 100,
                    'time_to_live' => 86400,
                    'apns_production' => true, // ios推送证书的选择,True 表示推送生产环境,False 表示要推送开发环境
                    //'big_push_duration' => 10,
                ])
                ->send ();
            return $result;
        } catch (\Exception $e) {
            // 写入错误日志
            // 这里根据自己的业务来定
        }
    }
}
// 我看他们这么写的..不知道对不对

不行啊,大哥