这是我的代码。
namespace App\Console\Commands;
use Illuminate\Console\Command;
use Illuminate\Support\Facades\Redis;
use App\Events\RedisEvent;
class RedisSubscribe extends Command
{
protected $signature = 'redis:subscribe';
protected $description = 'Subscribe redis channel for socket communication';
protected $redisSubClient;
protected $redisCacheClient;
public function __construct()
{
parent::__construct();
$this->redisSubClient = Redis::connection('redis_socket_sub');
$this->redisCacheClient = Redis::connection('redis_cache');
}
public function handle()
{
$this->redisSubClient->subscribe(['fromClient'], function($data) {
if($this->redisCacheClient->get(config('lunachat.yellow_id').'_socket_mode') == 1) {
$par = [
'
'
'
'
'
];
event(new RedisEvent($par));
}
}
} catch (\Exception $e) {
}
});
}
}
这是eventlistener
class RedisEventListener
{
public $par;
public function __construct()
{
//
}
public function handle(RedisEvent $event)
{
$this->par = $event->par;
$api = new Api();
if ($api->find($this->par['id'])) {
$api->apiCallWrite($this->par);
}
}
}
我的问题是,当我运行此程序时,与该事件关联的所有代码将一起加载和运行。
因此,如果我修改相关代码,我必须重新启动程序。
但是,我的服务条件并非如此。
因此,该程序仅编译并执行代码以执行事件,并且后续逻辑需要动态编译和执行。
我想知道这是否可以在Laravel。