分类:一般

PHP设计模式-观察者模式

史蒂芬劳埃德沃特金斯 ,周二09年12月29日下午10时02

我一直在阅读深入浅出设计模式 最近已决定为PHP写的例子为我自己的利益的一些模式。 第一个,我已经决定了的代码是Observer模式 该观察模式的正式定义是:

观察者模式 (一异步子集发布/订阅模式 )是一种软件 设计模式 ,其中一个对象 ,叫做主体,维护一个观察员的名单及其家属,要求,并通知他们自动的任何状态变化,要求通常是由他们的一个方法 它主要用于实现分布式事件处理系统。

随着系统变得更加松耦合确保事件发生时系统,这需要所有这些更新知识的了解。 例如,一个博客文章,救了他的文章中,我们可能需要更新的搜索引擎(如Lucene的),更新我们的地图,标签,电子邮件订阅用户等观察员模式允许开发者添加更多的听众不编辑的观察对象。 通过注射观察员(即搜索引擎更新的观察员,一个sitemap发电机等):一个主题(即博客文章编辑系统),我们可以允许它来执行无任何变化的所有必要的更新。

继续阅读的PHP设计模式-观察者模式'»

使用虚拟办公室网格计算环境-第3部分

史蒂芬劳埃德沃特金斯 ,星期五09年12月4日下午11点37分

简介

本人在一家公司工作,我们运行很多批作业处理每天数百万的每个记录的数据和我一直在想最近关于这一点,所有的机器,每天坐在这里每几个小时什么事也不做。 那岂不是好,如果我们可以利用这些机器,以增强我们的系统处理能力? 在这篇文章的设置,我要看看用人办公室的潜在好处的电网使用虚拟化环境。

第二部分的工作,我们看着一台服务器将运行,以及如何工作应配置,以达到最大的失败,不处理量,同时确保每个处理工作。

设置你的工人 - 或跛行服务器

该过程的下一步是设置虚拟工人。 为此,我,我会用一个使用VirtualBox的CentOS安装。 我要安装mySQL的PHP的上也被称为服务器,一马钱, 米ySQL,磷惠普)在ServerA(我可能会做出这个名字了)。

  • 安装VirtualBox在你的Windows机器(以下链接)
  • 下载并安装的CentOS(目前版本5.3)在创建的虚拟机

有一点我没有到这个有可能是1000的教程,他们已经有很大的(好吧,这里有一个: 创建和Managing CentOS的虚拟机下的VirtualBox )。 最重要的一点要注意的是,我想我打电话给我的虚拟机GridMachine。

至于客户端的虚拟化和操作系统我选择去那里是没有什么大的每一个选择的充分理由。 VirtualBox是我用的东西在我家的机器,由三个主要的操作系统支持。 我选择了CentOS的作为它的一个良好稳定的操作系统,我用我自己的Web服务器上。 我对这项工作的合适的工具一个非常相信(尽管我在申请'用最快和最简单的为你的心态在这里),所以如果你的操作系统运行的X代码更快更有效地使用它 :)

更重要的是确保你的虚拟机使用DHCP,否则每个新的虚拟机,将需要单独配置这是我们不使用DHCP want.By我们并不需要配置计算机的网络设置为职工个人,DHCP会手为你的IP。 因此,你可以不用担心复制设置每个注册一个令人担忧的虚拟机(这提高了可扩展性和降低工人管理)有关办公室。

这个过程中你要达到的目的是取得一个新的物理机,安装VirtualBox,然后几乎没有太多的其他部署的虚拟形象。 这可能是明智的设定所有你是一个不同的子网,这样你至少可以看到有多少机器正在运行的工人。 您还需要建立一个长期租赁或租赁的DHCP无限你的机器。

如何运行工作的工人

这是一个有趣的领域上也有工人处理工作若干有效的方法。 在这里,我将只讨论两个最明显的:

  • 永远运行脚本:脚本,无论是一个shell脚本,或执行一个PHP脚本的工人一次,并作为一个无限循环的一部分运行。 我折扣为一体的脚本坠毁方法和你的员工可能会停止运行没有某种干预排序。
  • 克龙的脚本执行:每隔X分钟cron守护进程启动一个到你的脚本调用得到的东西去。 如果没有一些检查,这可能导致你的工人行书很多很多的副本。

我的决定是去是用cron启动一个shell脚本每10 minutes.Â我的shell脚本执行以下任务:

  1. 获取进程列表和grep为'PHP的这一点。 如果没有找到,那么继续。
  2. 打电话给你的工作代码,在我而言这将是基于PHP的东西
  3. 工人脚本完成运行
  4. 准备去下一个适当的再次呼吁

我的bash脚本看起来像下面这样:

  #!/ bin / sh的
如果ps的斧| grep的- V的grep的| grep的PHP的“/ dev / null的
然后
    回声“工作目前正在处理,退出”
其他
    回声“作业没有运行,从现在做起”
     PHP的yourJobProcessingScript.php
科幻 

注:Echo的几乎是完全没有意义的,但可以帮助下一个人谁走来,试图对其进行编辑。

以上是设置虚拟机的工人,快速,简单,容易复制到每个新硬件已接收了。 在'聪明'的电网系统真的不是在可视化的操作系统,它的一切跟乔布斯创建的过程中,工作配置的代码,并确保在作业运行在适当的时候(即当主机处于闲置状态)。

设置窗口,以初始化工人

第一项任务是制订需要运行从Windows命令行虚拟机的命令。 如果您已经安装在默认位置的VirtualBox,你也叫你的工人GridMachine那么工人是需要加载命令你:

 的“C:\ Program Files文件\日\ VirtualBox的\ VBoxManage.exe”startvm GridMachine 

但若要在一个'无头'的状态,我们需要使用脚本:

 的“C:\ Program Files文件\日\ VirtualBox的\ VBoxHeadless.exe”- startvm GridMachine -残疾人复业=关 

这将启动没有GUI中的虚拟机,并​​允许它保存状态正常。 第二个参数关闭的RDP,因此不会发生冲突的RDP在Windows,或给你一个消息端口3389上监听左右。 虚拟机的名称是区分大小写的!

下一步,我们将需要设置的窗户上踢了我们的工人,一旦虚拟机已处于闲置状态。 要做到这一点(在Windows XP中),你就需要去开始 - >“所有程序” - >附件 - >“系统工具 - 如下>预定任务”:

计划任务

下一步点击'添加任务计划,其次是浏览添加自定义程序。 浏览到您的VBoxManage脚本,然后单击确定。 安排您的选项(我们将在一分钟内改变这一点),继续任何任务。 跳绳后下一个画面窗口会问你谁,你要执行这个任务,我建议你为'管理员'或创造了新的特权用户。 请记住我们不想干扰机的标准上的工作人员在任何时候的帐户。 点击下一步,检查显示此任务的高级选项。

对于unticked结束的运行文本框加入我们的'startvm GridMachine'字符串,并确保只运行时留下的记录是。 访问下一个调度任务的时间表,改变下拉的选项'空闲时',选择,然后再进入到下一个标签的时间你喜欢的机会被闲置。

最后勾去掉选择哪些国家停止任务,如果它已经运行X的时间,但打勾选择停止任务,如果机器不再闲置。

附表

就是这样然后对Windows主机设置!

综述

在这一部分,我们已成立一个虚拟机作为一个工人,以及以何种方式我们称之为我们的工作处理和执行脚本(我自己一个PHP脚本)。 从这里我们看一下如何建立我们的Windows副本无头模式开始在虚拟机在计算机空闲,并保存其状态恢复时,用户的机器使用。 希望在这一点上你看到的是多么简单设立这样一个系统,并渴望得到一些实验的进行吧!

下次

第四部分 ,我们会关注使用工具,以确保您正在运行最新版本的数据源的代码和使得到的结果始终保持逻辑日期最新的商业信息和。

英国名目录和Facebook应用

史蒂芬劳埃德沃特金斯 ,周五09年4月10日上午9点33

Tracesmart一个有趣的东西,我的工作了,而在参与是名称的目录 我们基本上把我们庞大的信息数据库,拿出约一大堆各种名目的统计。

这个过程都是一个大的搜索引擎优化的努力,以便吸引更多的流量到网站,但它也提供了一些有趣的统计信息和名称。

下面是一个例子为我的名劳埃德沃特金斯 ,不然我想更准确的史蒂芬沃特 花一点时间来看看你的名字在Tracesmart网站,可能会很有趣;)

我们也得到了统计数据的名称名称目录页,它告诉你什么名字已被搜查及最近如何。 它很有趣地看到著名的人的名字飞了起来,他们的数据统计,在新闻中出现。 最近的一个例子是, 利亚姆尼森谁的妻子死于一次滑雪事故最近,虽然不太明显的人)有权在拼写(在这个庞大的数字,因此命中的名字- 利亚姆尼尔森

Facebook应用

一旦名称目录的创建,我们着手创建一个Facebook应用程序 ,我们duely名为' 我的名字 '。 在Facebook的应用程序是一个扩展的名称目录 ,并提供一些其他统计资料。 为了增加目录的名字你的Facebook帐户,请访问:

http://apps.facebook.com/my-name/

Flickr和雅虎:忘记登录信息

史蒂芬劳埃德沃特金斯 ,星期四2009年4月2日下午7时31分

几个月前,我改变了我的Flickr密码,这样的朋友可以上传一些照片给它。 一两个月后,我发现我已经忘记了密码,并试图从雅虎记住我所有的秘密细节,只是一场噩梦。 我有我好几年雅虎电子邮件地址,我不知道何时何地(我是生活)当我注册了 - 哦,只是为了更清晰地了解Flickr的使用雅虎登录系统:)

雅虎没有任何帮助,他们希望具体的细节,并会拒绝任何不匹配。 加上我是不允许它提供了一个可能将于否则将被拒绝每一个细节都正确匹配详细列出。 我能理解,这是获得安全,而且在屁股疼痛,尤其是我能找回我的用户名,我没有任何麻烦通常电子邮件地址(你为什么不能发送一个复位有!?!?!). 在这一切的细节上,他们希望在加州发送到他们的办公室或通过邮寄或传真,嘘!

退后到Flickr谁请发电子邮件到我的注册电子邮件地址要我脱离我的Flickr帐户我的雅虎帐户。 万岁然后我可以注册一个新的雅虎帐户,并重新安装我的Flickr帐户,这个新的登录。

在等待至少一个星期,每次雅虎Flickr的回答得到了所有在2-3小时内排序这个!

做得好的Flickr,幸好你在那里寻找客户后,你:)

每个人的无聊现在,这里的又一我的Flickr帐户连结

启发...和guilted!

史蒂芬劳埃德沃特金斯 ,星期三2009年3月11号下午8时51分

我最近成立了一个博客,在工作中的球员 ​​之一- 马修霍普金斯 -和他第一次看到几篇文章也让我想起,也许我应该补充而超过2008年的数个职位作为其发生是一个好地段了。 另一件作品的球员 ​​之一,他在做一个博客,老好人斯蒂芬格里菲思所以要看看那儿去。

所以我要苦战并添加什么,我和2008年举行的2009年是如何塑造了一些回顾篇:)

2008年跆拳道?!?

史蒂芬劳埃德沃特金斯 ,星期四2009年1月1日上午12:00

2008年是一个奇怪的旧岁,有我真正了解它,一个享有一些事情,有一些已被遗忘,动了...事情上。

跳水

我没有做太多的水肺潜水,我认为我设法围绕全年约10次潜水方式。 潜水是其中的一个潜水圣诞老人码头事件在Vobster这是比我更成功的最疯狂的梦想。 最后我们募集了1000英镑的RNLI ,得到了英国独立电视台和英国广播公司报道,并已在水中约80潜水员。 Vobster是为天海潜水圣诞老人! 我真希望我能在2009年做更多的潜水(还有更多!),找回它会涉及到大量的训练是为了放松了。 我想获得在船上,阳光灿烂下,抓龙虾,包装乌帕A和几个啤酒往家里的日子。

运行

截至2008年1月结束时,我参与了一场​​车祸,从后面撞上,而停了下来,没有大的我这样想着。 过去几个月我的颈部疼痛越来越差停止我跑过来。 最后我接触的一个意外索赔公司谁使我开始了在加的夫按摩师,我现在还在参加(2009年3月 - 仍是没有解决任何索赔)的治疗。 跑步是另一个平常的事情,我想回去,我就开始了万里 ,但与疾病,受伤,他最终迁移到剑桥我们只得到了一个时代屈指可数的。 我真的需要一个好了屁股踢去走了一遍,虽然我一个安慰的是,我一直在骑自行车回和前几个月的工作,我正在做一些好。

动议

2008年7月我到一个平坦的感动和Megan,我们正在通过绘画和装饰,并得到它看起来真的尼西亚 - 。尽管我们的拖曳画...我们的高跟鞋仍然排序。 该单位是Adamsdown在加的夫(我从来没有止步不前,远),是适合我们真是太好了。

工作

工作是在2008年超过所有的地方,我开始就接受漂流在一个经理的代理工作,让一点点。 这有助于最终没有与地产及租务代理软件 ,我正在发展。 我的计划,让地产代理软件是释放了它作为一个低成本的产品时,我有更多的时间来清除它。 从什么我对市场上的竞争更容易使用和执行许多相同的功能或更多的产品以更好的方式告诉:)

在2008年4月来了我的22岁生日,我的母亲都梅根开始为我推到'获得了职业生涯',这很难下咽的想法是我真正需要的。 经营我自己的公司很有意思,但没有提供所需的稳定和收入在租赁代理不是一个长远的职业目标的微薄。 这一直是案件的等待,直到我得到我的软件完成,我会开始出售,但时间对我总是如此。

随之而来的是在一些重大领域的一些大公司的几个面谈,搬迁到一个充满希望的新领域,新的开始似乎很大。 最好的工作提供了一个大型主机在伍斯特地区供应商,似乎理想。 发生了什么? 嗯,我已经开发了一个网上短信解决方案在圣诞节后已被周围没有做太多的投资者发现报考。 太好了,我想和关闭,我们去了。 都没有好下场的,后断上升的压力水平的承诺和我做了几个月的立场,走了出去。 每周工作60小时,回家做是另一回事3-4小时,另加工作的所有周末和所有的强调这是我见过的最好的决定之一。 (这里我要感谢梅根,我的父母,和我的朋友,就站在我身边,我是一个有时压力为首的家伙,我很抱歉)

四个星期后,我自己是一个降落卡迪夫湾的工作要求与公司Tracesmart在PHP的开发人员。 在通过测试和面试我的热情与一大堆(你可以想像的事情已经有点低了一段时间)开始。 Tracesmart人执行搜索,跟踪人,选举名册数据处理,涉及到大量数据。 现在我已经有大约5个月(实际编写给我这个2009年3月),我喜欢它的每一分钟。 我推着自己的每一天,有一个良好的工作环境(我的书桌俯瞰港湾!),好同事! 我已经参与了一些很好的项目(其他职位,跟随),我真的很害怕,我在那里做的工作感到骄傲。

2009 ...。

尽管开始在诺病毒2009年从德国2009年是伟大的痛苦至今。 Megan和我spentÂ在德国和荷兰阿姆斯特丹新年的时间。 阿姆斯特丹是美丽的,安妮之家对我有真正深刻的影响,地方,我们一定会被返回。 工作进行得很顺利。 我的脖子是越来越好,所以在一个星期的时间前,我会去为那些最初的几个可怕耗尽一次。 我唯一​​现在真正需要的是好几个潜水(或潜水假期)进入的东西摆回来了!

自定义的php.ini与Plesk

史蒂芬劳埃德沃特金斯 ,星期三2008年8月13号下午3时53分

我们有一个专门的服务器ukFast上,我们跑了数 ,在服务器上运行的虚拟上存在的Plesk 无论如何,对我的域名最让我想躲避安全警告和错误,以保持日志文件但是在我的领域(如那些我正在开发的)一些,我想告诉每一个小讨厌的警告和错误出现。

如果我修改我的PHP的。INI“>的php.ini这会影响到每一个域名服务器上的想法,而不是好,特别是当站点几次完全现场版 这么说,为了解决这个你需要把一个文件名 ​​为vhosts.confconf目录下的例子,因为, /var/www/vhosts/<my_domain>/conf/vhost.conf

一旦你添加你的额外的代码,又比如我在内,

 php_value error_reporting E_ALL php_value display_errors On 

其次是运行以下命令(这重新配置您的域的所有的正义 懒惰比输入域名

 # /usr/local/psa/admin/bin/websrvmng -a 

如果你感觉有点灵活,你可以随时出完整的版本,这是类型,

 # /usr/local/psa/admin/sbin/websrvmng -u --vhost-name=<my_domain> 

此命令后,如果你看看httpd.include文件,会看到你的httpd.include将有包括线路为您vhost.conf,像这样:

 Include /srv/www/vhosts/domain.com/conf/vhost.conf 

测辐射热计理论

史蒂芬劳埃德沃特金斯 ,星期四2007年6月21日下午1时18

我有过的电子邮件吨(井约5:$)对引进到'辐射热计理论的页面我曾经有在网站上注册要求。 因此,这里也同样出现,但与某些链接到旧撤走部分其它位:)

测辐射热计理论概论













全景主题 Themocracy

现在9访客在线
7客人,2机器人,0位会员
最大游客今日:14日上午07:34联合技术
本月:26日2011年7月5日上午12点35分联合技术
今年:130 28-03-2011下午10时40联合技术
所有时间:130 28-03-2011下午10时40联合技术