0
我已经知道我不能把它作为一个受保护的变量存储在命令类本身上(我试过了,那不起作用)。有没有一种方法可以在命令的执行之间存储数据,而无需将该信息存储在数据库中或写入文件?我可以在执行Symfony2命令之间存储一个值吗?
基本上,我每隔2分钟通过cron运行一个命令,但我想设置一个标志,每次运行命令时都会更改。
以下情况不起作用,因为每次运行命令时,受保护的变量都被初始化为snc_redis.dashboard1
。
protected $redisDb = 'snc_redis.dashboard1';
protected function execute(InputInterface $input, OutputInterface $output)
{
if ($this->redisDb == 'snc_redis.dashboard1') {
$this->redisDb = 'snc_redis.dashboard2';
}
else {
$this->redisDb = 'snc_redis.dashboard1';
}
}
也许你可以将它存储在某种内存缓存中。你有没有听说过Memcache? –
是的,我以前使用过memcache,但不是直接使用。我完全可以将这个值存储在redis数据库的某个地方,我只是想知道是否在symfony中内置了一个方法来在命令执行之间持久化属性? –
每个Php执行都有一个完全清晰的上下文,因此除非将其保存到磁盘或内存a,否则每次执行时生成的信息都会消失。 – Carlos