我正在使用Jenkins v2.1和集成的交付管道功能(https://jenkins.io/solutions/pipeline/)来编排两个现有的构建(构建和部署).
在我的参数化构建中,我有3个用户参数设置,也需要在管道中进行选择.
管道脚本如下:
node: {
stage 'build'
build job: 'build', parameters: [[$class: 'StringParameterValue', name: 'target', value: target], [$class: 'ListSubversionTagsParameterValue', name: 'release', tag: release], [$class: 'BooleanParameterValue', name: 'update_composer', value: update_composer]]
stage 'deploy'
build job: 'deploy', parameters: [[$class: 'StringParameterValue', name: 'target', value: target]]
}
Run Code Online (Sandbox Code Playgroud)
这个工作正常,除了BooleanParameterValue.当我构建管道时,抛出以下错误:
java.lang.ClassCastException: hudson.model.BooleanParameterValue.value expects boolean but received class java.lang.String
Run Code Online (Sandbox Code Playgroud)
如何解决此类型转换错误?或者甚至更好,是否有一种不那么麻烦的方式,我可以将所有管道参数传递给下游作业.
我创建了一个简单的发布者和使用者在队列上订阅的消费者basic.consume.
我的消费者在作业无异常运行时确认消息.每当我遇到异常时,我都不会收到消息并提前返回.只有已确认的消息才会从队列中消失,因此工作正常.
现在我希望消费者再次接收失败的消息,但重新生成这些消息的唯一方法是重新启动消费者.
我该如何处理这个用例?
设置代码
$channel = new AMQPChannel($connection);
$exchange = new AMQPExchange($channel);
$exchange->setName('my-exchange');
$exchange->setType('fanout');
$exchange->declare();
$queue = new AMQPQueue($channel);
$queue->setName('my-queue');
$queue->declare();
$queue->bind('my-exchange');
Run Code Online (Sandbox Code Playgroud)
消费者代码
$queue->consume(array($this, 'callback'));
public function callback(AMQPEnvelope $msg)
{
try {
//Do some business logic
} catch (Exception $ex) {
//Log exception
return;
}
return $queue->ack($msg->getDeliveryTag());
}
Run Code Online (Sandbox Code Playgroud)
制片人代码
$exchange->publish('message');
Run Code Online (Sandbox Code Playgroud) 我正在努力让ESI包含在JSON上下文中被替换.
以下工作正常.导致ESI标签被实际内容所取代.
<esi:include src="http://domain.com/esipath/" />
Run Code Online (Sandbox Code Playgroud)
这不起作用.ESI标签未被替换.
{
"test": "<esi:include src="http://domain.com/esipath/" />"
}
Run Code Online (Sandbox Code Playgroud)
我在google上找到了一些资源,并且可能的解决方案似乎设置esi_syntax为0x3,以便varnish跳过检查有效的XML.这似乎不适用于Varnish 4.当我使用运行时参数启动deamon时,我收到以下错误.
Error: Unknown parameter "esi_syntax".
Run Code Online (Sandbox Code Playgroud)
Varnish 4中是否弃用此设置?
任何想法让这个工作?
我使用php NumberFormatter类遇到了一些问题.我想要显示没有任何小数的圆形数字,并且具有小数的数字要舍入为2位小数.即
$fmt = new NumberFormatter('nl', NumberFormatter::CURRENCY);
$fmt->setAttribute(\NumberFormatter::MIN_FRACTION_DIGITS, 0);
$fmt->setAttribute(\NumberFormatter::MAX_FRACTION_DIGITS, 2);
var_dump($fmt->formatCurrency(15.15, 'EUR')); //Outputs € 15,15
var_dump($fmt->formatCurrency(15, 'EUR')); //Outputs € 15,00
Run Code Online (Sandbox Code Playgroud)
你可以看到最后一个转储正在输出,15,00但我在15这里期待.每当我使用"完整"语言环境nl_NL而不是nl格式化程序的行为符合预期,但我无法使用它,因为我只有我的语言环境中可用的语言.
$fmt = new NumberFormatter('nl_NL', NumberFormatter::CURRENCY);
$fmt->setAttribute(\NumberFormatter::MIN_FRACTION_DIGITS, 0);
$fmt->setAttribute(\NumberFormatter::MAX_FRACTION_DIGITS, 2);
var_dump($fmt->formatCurrency(15.15, 'EUR')); //Outputs € 15,15
var_dump($fmt->formatCurrency(15, 'EUR')); //Output € 15
Run Code Online (Sandbox Code Playgroud)
这似乎是NumberFormatter中的一个错误,但我真的不知道如何解决它或找出其他一些解决方法.我会非常感谢任何帮助.
有谁知道PHPStorm是否有一些内置支持视图助手自动完成或是否有可能为它编写插件.我不想为此使用内联var定义,因为如果我使用大量的视图助手,这将是很麻烦的事情
$this->inlineScript()-> //I want some autocomplete here.
$this->translate('some translation')-> //Please give me autocompletion
Run Code Online (Sandbox Code Playgroud)
如果我使用var定义,它最终会像这样,但它会让我的观点变得混乱:
/* @var $inlineScript \Zend\View\Helper\InlineScript */
$inlineScript = $this->inlineScript();
$inlineScript-> //Now I have autocompletion goodness
/* @var $translate \Zend\I18n\View\Helper\Translate */
$translate = $this->translate();
$translate('some translation')-> //Now I have autocompletion goodness
Run Code Online (Sandbox Code Playgroud) 遵循Doctrine DBAL文档,我应该能够绑定一个字符串值列表,如下所示:
$sql = 'SELECT * FROM mytable WHERE myfield IN (?)';
$stmt = $conn->prepare($sql);
$stmt->bindValue('myfield', array('stringa', 'stringb', 'stringc'), \Doctrine\DBAL\Connection::PARAM_STR_ARRAY);
$stmt->execute();
Run Code Online (Sandbox Code Playgroud)
这导致PHP通知并杀死我的脚本.
Notice: Array to string conversion in C:\www\eurocampings\vendor\doctrine\dbal\lib\Doctrine\DBAL\Statement.php on line 142
Run Code Online (Sandbox Code Playgroud)
我做错什么了吗?
是否有可能从一个ViewController?我正在尝试使用商店中的按钮动态填充工具栏,但我不确定如何从控制器访问商店.任何提示赞赏.我的Extjs版本是5.1.
视图:
Ext.define('EurocampingsCMS.view.Foo', {
extend: 'Ext.toolbar.Toolbar',
alias: 'widget.foo',
requires: [
'EurocampingsCMS.controller.Foo'
],
controller: 'foo',
});
Run Code Online (Sandbox Code Playgroud)
视图控制器:
Ext.define('MyApp.controller.Foo', {
extend: 'Ext.app.ViewController',
alias: 'controller.foo',
control: {
'#': {
beforerender: 'onBeforeRender'
}
},
onBeforeRender: function (toolbar, eOpts) {
//How to get store here??
store.each(function (record) {
toolbar.add({
xtype: 'button',
itemId: record.get('localeId'),
text: record.get('label')
});
});
}
});
Run Code Online (Sandbox Code Playgroud)