小编Bra*_*sen的帖子

管道将参数传递给下游作业

我正在使用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)

如何解决此类型转换错误?或者甚至更好,是否有一种不那么麻烦的方式,我可以将所有管道参数传递给下游作业.

groovy jenkins jenkins-pipeline

52
推荐指数
5
解决办法
8万
查看次数

消费者不承认来自RabbitMq的消息

我创建了一个简单的发布者和使用者在队列上订阅的消费者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)

php amqp rabbitmq

14
推荐指数
1
解决办法
2万
查看次数

ESI包含JSON响应

我正在努力让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中是否弃用此设置?

任何想法让这个工作?

varnish esi

9
推荐指数
1
解决办法
3448
查看次数

使用numberFormatter格式化货币

我使用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中的一个错误,但我真的不知道如何解决它或找出其他一些解决方法.我会非常感谢任何帮助.

php number-formatting

7
推荐指数
1
解决办法
1223
查看次数

在PhpStorm中自动完成ZF2视图助手

有谁知道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)

php zend-view phpstorm zend-framework2

5
推荐指数
1
解决办法
4941
查看次数

使用Doctrine DBAL在预准备语句中的字符串列表

遵循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)

我做错什么了吗?

php doctrine dbal

2
推荐指数
2
解决办法
6745
查看次数

在ViewController中获取商店

是否有可能从一个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)

javascript extjs viewcontroller

1
推荐指数
1
解决办法
4497
查看次数