我想从Symfony2中的Controller内异步调用命令.
到目前为止我找到了以下解决方案:
$cmd = $this->get('kernel')->getRootDir().'/console '.(new MLCJobWorkerCommand)->getName().' '.$job->getId().' 2>&1 > /dev/null';
$process = new Process($cmd);
$process->start();
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法来实现这一目标?
编辑:
我需要Process在后台运行,Controller需要在启动前者后立即返回.我试过了:
$cmd = $this->get('kernel')->getRootDir().'/console '
.(new MLCJobWorkerCommand)->getName()
.' '.$job->getId().' 2>&1 > /dev/null & echo \$!';
$process = new Process($cmd);
$process->mustRun();
$params["processid"] = $process->getOutput();
Run Code Online (Sandbox Code Playgroud)
但是,在Process完成之前,Controller不会返回响应.
我需要为Symfony 2.7中的每个EntityType字段选择添加一个额外的HTML属性.
按照本指南,我假设EntityType从ChoiceType继承此功能.我尝试了类似下面的内容,但没有效果; 没有mytype属性被添加到渲染的选择选项中.
$builder->add('customer_email', 'email')
->add('Product', 'entity', array(
'class' => 'MyBundle:Product',
'property' => 'name',
'empty_value' => 'None',
'required' => false,
'choice_attr' => function ($val, $key, $index) {
return array('mytype' => $val->getType());
}))
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用条件 access_logging 配置 nginx/1.13.0。
如果 access_logging 仅以 $status 代码为条件,则一切正常:
http {
[..]
map $status $logworthy_status {
~^[4] 1;
default 0;
}
[..]
server {
[..]
access_log /var/log/nginx_access.log combined if=$logworthy_status;
[..]
}
}
Run Code Online (Sandbox Code Playgroud)
调试日志显示地图按预期运行:
2017/06/13 11:34:14 [debug] 23153#0: *203 http map started
2017/06/13 11:34:14 [debug] 23153#0: *203 http script var: "401"
2017/06/13 11:34:14 [debug] 23153#0: *203 http map: "401" "1"
Run Code Online (Sandbox Code Playgroud)
但是,如果我尝试重写此内容以允许此处建议的多个条件:
http {
[..]
map $status $logworthy_status {
~^[4] 1;
default 0;
}
[..]
server {
[..]
set $logworthy …Run Code Online (Sandbox Code Playgroud) 我正在尝试在 Linux 系统上使用 lmdb 后端配置 openldap-2.4.43 。到目前为止还没有成功。
slapd.conf:
include /opt/openldap/etc/schema/core.schema
include /opt/openldap/etc/schema/cosine.schema
include /opt/openldap/etc/schema/inetorgperson.schema
allow bind_v2
pidfile /var/run/slapd.pid
argsfile /var/run/slapd.args
database config
rootdn "cn=Manager,cn=config"
rootpw {SSHA}sMXtPWSAL9yEgDslsXMZiM+qgLJZW9VO
database mdb
suffix "dc=mydomain,dc=com"
rootdn "cn=Manager,dc=mydomain,dc=com"
rootpw {SSHA}sMXtPWSAL9yEgDslsXMZiM+qgLJZW9VO
directory /var/openldap/data/main/
maxsize 10485760
index objectClass eq,pres
index ou,cn,mail,surname,givenname eq,pres,sub
Run Code Online (Sandbox Code Playgroud)
straced slaptest (/opt/openldap/sbin/slaptest -f slapd.conf -F ./slapd.d/) 结果(最后部分):
stat("/var/openldap/data/main/", {st_mode=S_IFDIR|0700, st_size=40, ...}) = 0
getpid() = 2440
brk(0x828a000) = 0x828a000
open("/var/openldap/data/main//data.mdb", O_RDONLY) = -1 ENOENT (No such file or directory)
time(NULL) = 1453993047
write(2, "56aa2c57 mdb_db_open: …Run Code Online (Sandbox Code Playgroud) php ×2
symfony ×2
conditional ×1
ldap ×1
lmdb ×1
logging ×1
nginx ×1
openldap ×1
symfony-2.7 ×1