小编noi*_*eed的帖子

使DateTime :: createFromFormat()返回子类而不是父类

我正在扩展DateTime,添加一些有用的方法和常量.

new用于创建新对象时,一切都很好,但是当使用静态方法时,createFromFormat它总是返回原始DateTime对象,当然没有任何子方法可用.

我使用以下代码来规避这个问题.这是最好的方法吗?

namespace NoiseLabs\DateTime;

class DateTime extends \DateTime
{
    static public function createFromFormat($format, $time)
    {
        $ext_dt = new self();

        $ext_dt->setTimestamp(parent::createFromFormat($format, time)->getTimestamp());

        return $ext_dt;
    }
}
Run Code Online (Sandbox Code Playgroud)

php inheritance datetime extend php-5.3

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

使用epoll_create1()而不是epoll_create()有什么好处?

我重写一个多线程的Linux-2.6.32 +应用程序以替换selectepoll.

epoll_create1(2)的手册页声明:

如果flags为0,则除了删除过时大小参数这一事实外,epoll_create1()与epoll_create()相同.

然而,这个过时的尺寸参数是不是被epoll_wait(2)用作maxevents

epoll_wait(int epfd, struct epoll_event *events,
                  int maxevents, int timeout);
Run Code Online (Sandbox Code Playgroud)

这意味着当使用epoll时我们可以避免声明最大事件数量,epoll_create1但迟早我们必须在调用时引用它epoll_wait?如果是这样,那么epoll_create1进入游戏的重点是什么?

感谢您对此主题的启发.

c asynchronous network-programming epoll

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

使用声明性语法在不同节点上运行 Jenkins 并行阶段

设法在同一节点上成功并行运行集成测试,现在我想将它们分布在不同的节点上。在下面的示例中,我希望阶段IT 1IT 2在不同节点上运行,而IT 3在原始节点上运行。通过使用node作为父级stage('IT 1')node子级尝试了几种组合,但两者都出现语法错误。实现此目的的正确语法是什么?

pipeline {

  agent { label '!master' }

  stages {
    stage('Integration Tests') {
      parallel {
        stage('IT 1 (slow)') {
          steps {
            sh 'run-it-1.sh'
          }
        }
        stage('IT 2 (slow)') {
          steps {
            sh 'run-it-2.sh'
          }
        }
        stage('IT 3 (quick)') {
          steps {
            sh 'run-it-3.sh'
          }
        }
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

编辑:使用label而不是node声明性管道的作品。下面的例子:

stage('IT 1 (slow)') {
  agent { label '!master' }
  steps …
Run Code Online (Sandbox Code Playgroud)

parallel-processing distributed jenkins jenkins-pipeline

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