小编sto*_*ofl的帖子

从Gearman作业服务器中删除所有Gearman作业

有没有办法从Gearman作业服务器中删除所有Gearman作业?我有一个PHP应用程序在后台运行Gearman作业.对于我的单元测试,我需要确保a)没有工作等待执行它的工人和b)没有工人工作.后者并不重要,因为它很容易杀死工人而前者 - 我不知道如何实现这一点.

php unit-testing gearman

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

模型不会在ng-if内更新

我在角度应用程序中有一个奇怪的行为,我不知道这是一个错误还是一个已知的限制:

'use strict';

var ctrl = function ($scope) {
    $scope.foo = false;
};
Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app ng-controller="ctrl">
  foo: {{foo}}
  <div ng-if="foo" style="background-color: #f00;">
    <p>foo</p>
  </div>
  <div ng-if="!foo">
    <br/><button ng-click="foo = true;">Show foo</button>
  </div>
  <button ng-click="foo = true">Show foo</button>
</div>
Run Code Online (Sandbox Code Playgroud)

http://jsfiddle.net/78R52/

我希望单击其中一个按钮会设置foo = true,但单击第一个按钮(在其中ng-if="!foo")不会更改模型.

测试版本是1.2.1.

javascript angularjs angular-ng-if

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

审计表的数据更改历史记录:对更改进行分组

假设我想将用户和组存储在MySQL数据库中.他们有一个关系n:m.为了跟踪所有更改,每个表都有一个审计表user_journal,group_journal和user_group_journal.MySQL触发器在每次INSERT或UPDATE时将当前记录复制到日志表(不支持DELETES,因为我需要应用程序用户删除记录的信息 - 所以有一个标志active将被设置为0而不是删除).

我的问题是:假设我一次将10个用户添加到一个组中.当我稍后在应用程序的用户界面中单击该组的历史记录时,我希望将这10个用户添加为一步而不是10个独立的步骤.是否有一个很好的解决方案将这些变化组合在一起 也许有可能在每次触发触发器时都有一个递增的计数器?我从未使用触发器.

最好的解决方案是将事务中所做的所有更改放在一起.因此,当用户更新组的名称并在一个步骤中添加10个用户(一个表单控制器调用)时,这将是历史记录中的一个步骤.也许有可能在每次启动事务时定义随机散列或递增全局计数器并在触发器中访问此值?

我不想让表设计比为每个"真实"表都有一个日志表更复杂.我不想在每个数据库表中添加一个事务哈希(意思是"真正的"表,而不是审计表 - 那当然没关系).另外,我想在数据库中有一个解决方案 - 而不是在应用程序中.

mysql triggers audit-tables

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

Gearman:将数据从后台工作人员发送到客户端

是否可以从后台运行的齿轮工人发送数据(使用PHP)?

我知道我可以将状态(分子/分母)传递给客户端,但我需要"返回"数据.

背景是我需要在不同的服务器上调用worker,如果他们没有响应,主脚本应该继续.所以我想我必须在后台运行工人.但我需要他们的一些数据.

更新: 似乎不可能.我想我要么将数据存储在共享数据库中,要么将其从远程服务器写入本地服务器,或者从远程服务器读取数据,或者做如下所示:

shell_exec('gearman -f getdata-192-168-200-1 > /my/path/ 2>&1 & echo $!');
Run Code Online (Sandbox Code Playgroud)

php gearman

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

XSL:复制XML然后替换一些标签

我是XSL/XSLT的新手.我想将一个xml文档复制到另一个文件中,但是要替换一些命名空间标记和一些具有某些特殊属性的标记.例如:

<root>
  <ext:foo>Test</ext:foo>
  <bar>Bar</bar>
  <baz id="baz" x="test">
    <something/>
  </baz>
</root>
Run Code Online (Sandbox Code Playgroud)

应该改写成:

<root>
  --Test--
  <bar>Bar</bar>
  xxx<baz id="baz">
    <something/>
  </baz>xxx
</root>
Run Code Online (Sandbox Code Playgroud)

是否可以复制整个XML,然后应用一些规则来替换我想要替换的标签?

xml xslt

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

具有缺失值的多系列图表(D3)

我想基于这个例子用D3创建一个多系列折线图.我的问题是,缺少一些值:

y    x1   x2   x3
1   0.8       0.7
2   0.9       0.7
3   0.9  1.2  0.7
4        1.1  0.7
5   0.8  1.1  2.7
6   0.9  1.2  2.6
7        1.3  0.8
Run Code Online (Sandbox Code Playgroud)

我想得到以下图表:

图表

应该忽略在开始或结束时缺少的点.我可以实现这一目标

d3.svg.line().defined(function (d) { return d.value; }
Run Code Online (Sandbox Code Playgroud)

但是如果一条线内缺少某些点,则不应该中断该线.使用上面的代码,绿线(x1)在y = 3处停止并在y = 5处继续.但是我希望将这些点连接起来.

没有使用line().defined(),所有缺失的点都被处理,好像它们的价值一样0.

这是代码,我曾经找到一种方法来实现该功能:

http://jsfiddle.net/G5z4N/2/

我认为在将数据传递给我的图表函数之前替换数据数组中的缺失点是没有办法的,因为我必须在图例和工具提示中显示值,我不能在这里显示计算值.因此,例如,如果我使用鼠标移动y = 4,则应该出现x1:-- x2:1.1 x3:0.8在图例中(x1此处没有任何值).此外,(实际)点应显示为圆圈.我也不希望在内存中有两个数据表(一个包含实际测量数据,另一个包含图表行的增强数据).

javascript charts d3.js

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

扩展XHTML DTD以在ID属性中使用特殊字符

我想验证作为XHTML扩展的XML模板.现在ID {|属性中都有特殊字符.是否可以扩展XHTML DTD以将限制覆盖到ID属性中允许的字符?或者是XML规范定义的字符?

xml xhtml templates dtd template-engine

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

XSLT:匹配除一个元素之外的命名空间的所有元素

我想编写一个XSLT模板,该模板匹配除一个元素之外的一个命名空间的所有元素.例如,我想匹配所有元素foo:*,但不是foo:bar.

是可以在选择器中定义它还是我必须在其中编写xsl:if条件xsl:template(以及如何测试元素的本地名称)?

xslt

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

XSLT:用''替换单引号

我正在使用XSLT将XML转换为html/php文件.在这个XSLT中,我用php代码替换了一些标签,现在我必须将属性值传递给php代码.我现在的问题是我必须使用反斜杠转义单引号才能使其正常工作.这是否可以使用XSLT.

例:

<xsl:template match="foo">
    <xsl:processing-instruction name="php">$this->doSomething('<xsl:value-of select="./@bar" />');</xsl:processing-instruction>
</xsl:template>
Run Code Online (Sandbox Code Playgroud)

如果我现在有一个模板:

<foo bar="test'xyz"/>
Run Code Online (Sandbox Code Playgroud)

这会产生:

<?php $this->doSomething('test'xyz');?>
Run Code Online (Sandbox Code Playgroud)

我现在想要实现的目标如下:

<?php $this->doSomething('test\'xyz');?>
Run Code Online (Sandbox Code Playgroud)

所以我想用''替换所有单引号

php xslt

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

流浪错误:缺少VT-x/AMD-V硬件加速

我想"起来"一个流浪汉的盒子.但是我收到以下错误:

VT-x/AMD-V hardware acceleration is not available on your system. Your 64-bit guest will fail to detect a 64-bit CPU and will not be able to boot.
Run Code Online (Sandbox Code Playgroud)

我的处理器:

# lshw -class processor
  *-cpu                   
       description: CPU
       product: Intel(R) Pentium(R) 4 CPU 3.20GHz
       vendor: Intel Corp.
       physical id: 4
       bus info: cpu@0
       version: Intel(R) Pentium(R) 4 CPU
       slot: U23
       size: 3200MHz
       capacity: 3200MHz
       width: 64 bits
       capabilities: fpu fpu_exception wp vme de pse tsc msr pae mce cx8 apic sep mtrr pge …
Run Code Online (Sandbox Code Playgroud)

vagrant

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

使用AngularJS进行不同的过渡

如何使用AngularJS启用不同的过渡.让我们说,我的网络应用程序中有一个侧边栏.我用户点击按钮X,侧边栏应该很快消失,如果用户点击另一个按钮,侧边栏应该慢慢消失.

我认为,这可以通过在其中一次点击之后设置转换选项值然后更改侧边栏的可见性状态(由转换指令监视)来实现.

但这对我来说似乎有点糟糕.有一个共同的方法来做到这一点?

angularjs angularjs-directive angularjs-animation

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

auto_prepend_file无法在cli模式下运行

我无法在我的mac上运行auto_prepend_file:

# cat /opt/local/lib/php/test.php
<?php
function test() { return 'foo'; }

# php --ini | grep php.ini
Configuration File (php.ini) Path: /opt/local/etc/php5
Loaded Configuration File:         /opt/local/etc/php5/php.ini

# cat /opt/local/etc/php5/php.ini | grep auto_prepend_file
auto_prepend_file = "/opt/local/lib/php/test.php"

# ls -la /opt/local/etc/php5/php.ini
-rw-r--r--   1 root  admin  68630 Jul 27 13:53 /opt/local/etc/php5/php.ini

# php -r "echo ini_get('auto_prepend_file');"
/opt/local/lib/php/test.php
Run Code Online (Sandbox Code Playgroud)

但是之后...

# php -r "echo test();"
Fatal error: Call to undefined function test() in Command line code on line 1

# php -i | grep auto_prepend_file …
Run Code Online (Sandbox Code Playgroud)

php command-line-interface

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

onFlush事件处理程序中的大量更新和删除

我想在我的学说模型中添加一个安全层。为了能够在SQL级别的原则过滤器中添加权限检查,我必须维护一些数据库表,其中包含为每个实体计算的访问控制令牌的缓存。

现在,我必须更新这些表,并且在某些情况下,我必须完全重建这些缓存表之一。这必须在侦听onFlush事件的事件侦听器中完成。存档(最好的性能和最可靠的)方式是什么?

该文档记录了如何持久存储新实体,以及如何更改已持久存储的实体的关联和原始属性。这是通过调用工作单元对象的computeChangeSet()或recomputeSingleEntityChangeSet()并将每个单个实体传递给这些方法之一来完成的。在这些更新过程中,必须锁定整个系统,尽管这种情况很少见,但应尽快完成。另外,我不知道如何删除实体甚至截断整个表,而不必先读出所有实体。

  • 如何在onFlush事件中删除实体?
  • 如何在onFlush事件中进行批量更新(表截断和数十万条记录的插入)?我想在这种情况下可以使用$ EntityManager-> getConnection()-> executeUpdate(),对吗?
  • 如何在onFlush事件中锁定表(读取)?

php mysql doctrine-orm

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