问题列表 - 第29465页

可扩展,延迟的PHP处理

我正在开发一个需要延迟PHP事件的在线PHP应用程序.基本上我需要能够在初始命中URL之后执行任意PHP代码x很多秒(但可能是几天).我需要相当精确地执行这些PHP事件,我也希望它具有相当的可扩展性.我正在努力避免安排一个cron作业每秒运行一次.我正在研究Gearman,但它似乎没有提供任何计划事件的能力,据我所知,PHP并不真正意味着作为一个守护进程运行.

如果我能告诉一些外部进程在下一个事件应该运行的确切时间在PHP服务器上轮询"事件检查器"URL,那将是理想的.此轮询时间需要能够随意减少或增加,因为事件可以被删除并添加到队列中.有什么想法以优雅的方式来实现这一目标吗?从外部调用PHP(必须解析HTTP请求或通过CLI调用)只需要很多开销就可以满足我的需求.

我目前的计划是编写一个PHP守护程序,它将使用gearman从PHP服务器运行事件和接口.PHP守护进程将围绕SplMinHeap构建,所以希望性能不会太糟糕.这个想法在我的口中留下了不好的味道,我想知道是否有人有更好的主意?想法略有改变.阅读编辑2.

编辑:

我正在创建一个在线游戏,让玩家轮流使用可变时间限制.我正在使用XMPP和BOSH来允许我向客户推送消息,但是我已经完成了所有这些工作.现在我正在尝试添加一个任意事件,该事件在从客户端播放之后触发,以便让客户端(以及游戏中的其他人员)花费很长时间.我无法在客户端使用定时触发器,因为这样可以被利用(因为客户端可以自己玩).希望有所帮助.

编辑2:

谢谢大家的反馈.虽然我认为你的大多数想法在小范围内都能很好地发挥作用,但我觉得它们不能很好地扩展(外部事件管理器)或缺乏该项目所需的准确性(CRON).此外,在这两种情况下,它们都是外部部件,可能会失败并增加已经很复杂的系统的复杂性.

我个人觉得满足这个项目要求的唯一干净的解决方案是编写一个处理延迟事件的PHP守护进程.我已经开始编写我认为第一个 PHP runloop.它处理观察套接字和执行延迟的PHP事件.希望当我接近完成这个项目时,我可以发布源代码,如果你们有兴趣的话.到目前为止,在测试中它已经证明是有希望的解决方案(没有内存泄漏或不稳定的问题).

编辑3:这是一个名为LooPHP的PHP事件循环库的链接,供有兴趣的人使用.

TL; DR要求

  • 在延迟的时间(从几秒到几天)调用(最好是原生的)PHP
  • 任意处理事件的创建/更新/删除(我期待大量取消的电话).
  • 处理预定的高负荷事件(每台服务器100-1000秒)
  • 通话时间应在预定时间的一秒钟内
  • 在这一点上,我不愿意将代码库重写为另一种语言(也许有一天我会)

php events asynchronous daemon

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

Unicode镜像字符?

?retcarahc"rorrim"edocinu eht htiw detaicossa ytilibarenluv fo tros emos ereht sI

?ksir yna ereht erA?rof ti si tahW

security unicode

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

在多个位置sql将char插入字符串

我如何转换会计GL号码

99999999999999999

999-99999-99-9999.999

在对MSSQL服务器2005的查询中

我不需要更新数据,只需在查询时转换STRING.

表:GLM_MASTER__ACOUNT字段:帐户

谢谢.

sql sql-server-2005

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

如何在jQuery中引用当前选中的元素?

我正在尝试创建一个脚本,img在每个链接到某个站点后插入元素,其源数等于给href定链接的属性值.这就是我想出的:

$("a[href*=site.com/img/]").after("<img src="+$(this).attr("href")+">");
Run Code Online (Sandbox Code Playgroud)

问题是,$(this)不起作用(attr()返回undefined).为什么?如何引用选定的链接及其参数href

javascript jquery

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

您如何处理遗留应用程序中未使用的代码?

在巨大的遗留应用程序中,通常会看到业务规则的变化导致未使用的代码.删除是最好的方法吗?或者是否有标记未使用代码的标准?如果需要,SCM确实有助于恢复旧代码.这也是特定于.NET代码库的.

.net javascript c# asp.net

18
推荐指数
6
解决办法
1743
查看次数

跟进将日期格式从Time.now更改为post.created_at

之前询问过有关如何以可读方式格式化日期的堆栈溢出问题.这就是它的要点.

我该怎么做

2010-06-14 19:01:00 UTC
Run Code Online (Sandbox Code Playgroud)

把它变成

June 14th, 2010
Run Code Online (Sandbox Code Playgroud)

我使用的答案是调用post.date并简单地添加以下内容 post.rb

@date = Time.now
@date.strftime("%B %d, %Y")
Run Code Online (Sandbox Code Playgroud)

它确实以单词显示日期,但我不想显示当前日期.我想要post.created_at日期.

如何修改上述内容(或者我需要在其他地方添加什么内容)才能使其正常工作?

ruby datetime ruby-on-rails

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

如何制作顶级git来跟踪另一个子目录git下的所有文件

命令序列

mkdir topdir
mkdir another-git-directory
touch fileC
touch fileD
git add.
git commit -m"sub-dir init"
cd ..
touch fileA
touch fileB
git add.
git commit -m"top-dir init"
git ls-files
//现在我们可以看到fileC和fileD没有被顶级git跟踪//
git ls-files -o
//这不会向我们展示fileC和fileD as untracked files //

我的问题是:如何让"git ls-files -o"显示子目录中未跟踪的文件?为什么git表现得如此,因为我希望git ls-files显示所有未跟踪的文件(即使它在另一个sub-dir git中)?

我知道我可以使用"git add*/."来制作顶级git来跟踪sub-dir文件......但我很想知道上面这个问题的原因.谢谢!

目录结构

 topdir +  
        +-- .git  
        +-- fileA  
        +-- fileB  
        + another-git-directory +-- .git  
                                +-- fileC  
                                +-- fileD  
Run Code Online (Sandbox Code Playgroud)

更新(6月26日)

我发现这个线程无法跟踪Git子模块中的文件和这个url(cn)http://blog.ossxp.com/2010/01/425/,它解释了如何解决问题.

解决方案:

git rm --cached another-git-directory #no trailing slash
git add another-git-directory /. …

git git-submodules

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

sql级联删除

我有一个关于级联删除和外键引用的问题:让我们假设下面的表:

ITEMX                 | ITEMY
------------------    | ------------
ID    FKID_ITEMY      | ID
1     1               | 1
2     1               |
Run Code Online (Sandbox Code Playgroud)

在FKID_ITEMY上有一个级联删除,这样如果我在ITEMX中删除一行,ITEMY中的相应项将被删除.我的问题是:

ITEMX中删除行ID 1是否会删除ITEMY中的行ID 1?

或者只删除ITEMX中的行ID 1,因为行ID 2仍在ITEMY中引用行ID 1?

换句话说,我希望在没有更多引用时删除ITEMY的行ID 1.级联删除会实现吗?

sql cascading-deletes

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

Windows 7 inetpub wwwroot只读

在我的Windows 7计算机上,除非我关闭用户帐户控制,否则c:\ inetpub\wwwroot不可更新.那是怎么回事?

iis windows-7

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

MongoDB DBRef ON DELETE CASCADE

MongoDB中是否有一种方法可以使用具有"ON DELETE CASCADE"功能的外键?

我知道你可以使用DBRef作为一种外键,但是当删除引用指向的集合中的项时,引用返回null.但我希望删除引用所属的项目.我该怎么做呢?

或者每次我删除的东西都需要检查对它的引用?

cascade foreign-keys mongodb dbref

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