Php-Resque 是 Resque 的PHP语言实现版。
使用示例:
1、定义一个任务队列:
// Required if redis is located elsewhere Resque::setBackend('localhost:6379'); $args = array( 'name' => 'Chris' ); Resque::enqueue('default', 'My_Job', $args);
2、定义一个任务:
每个任务要定义一个class,并且要包含一个perform方法
class My_Job { public function setUp() { // ... 设置任务的运行环境 } public function perform() { // .. Run job } public function tearDown() { // ... 删除任务运行环境 } }
3、从任务队列中删除任务:
// Removes job class 'My_Job' of queue 'default' Resque::dequeue('default', ['My_Job']); // Removes job class 'My_Job' with Job ID '087df5819a790ac666c9608e2234b21e' of queue 'default' Resuque::dequeue('default', ['My_Job' => '087df5819a790ac666c9608e2234b21e']); // Removes job class 'My_Job' with arguments of queue 'default' Resque::dequeue('default', ['My_Job' => array('foo' => 1, 'bar' => 2)]); // Removes multiple jobs Resque::dequeue('default', ['My_Job', 'My_Job2']);
// Removes all jobs of queue 'default' Resque::dequeue('default');
一、前言 公司项目里面用到了推送等第三方库,为了更快速的响应,决定将推送功能放入消息队列中处理。那么,如何做消息队列呢?通过网上资料,找到以下几种方案: 1)PHP+redis自己做消息队列 2)PHP-Resque 3)MemcacheQ 4)RabbitMQ 最后我们选了第二种方案,因为PHP-Resque是现成的框架,比第一种方案要方便,第二是由于我们的消息队列服务要求比较轻量级,PHP-R
消息队列处理后台任务带来的问题 项目中经常会有后台运行任务的需求,比如发送邮件时,因为要连接邮件服务器,往往需要5-10秒甚至更长时间,如果能先给用户一个成功的提示信息,然后在后台慢慢处理发送邮件的操作,显然会有更好的用户体验。 为了实现类似的需求,Web项目中一般的实现方法是使用消息队列(Message Queue),比如MemcacheQ,RabbitMQ等等,都是很著名的产品。 消息队列说白
php-resque中的角色: Job,需要在后台处理的任务。php-resque将任务抽象成PHP的类。每一个任务都是一个PHP类的对象。 Queue, 消息队列,php-resque将任务以List的形式保存。 Work, 消息处理者。php-resque 以daemon的形式在后台运行。 php-resque的流程: Created with Raphaël 2.1.0 Start enqu
require 引入另外一个文件的代码过来 wp的主页代码仅此 一句话 <?php /** * Front to the WordPress application. This file doesn't do anything, but loads * wp-blog-header.php which does and tells WordPress to load the theme. *
include() require() 区别: 引用文件方式 对于include()来说,在include()执行时文件每次都要进行读取和评估; 对于require()来说,文件只处理一次(实际上,文件内容替换了require()语句)。 这就意味着如果有包含这些指令之一的代码和可能执行多次的代码,则使用require()效率比较高。 是否有条件引用 include()是有条件包含函数,只
今天研究Yii源码的时候无意间发现了require的一个一直不知道的功能,以前使用require主要是引入文件,以为是把文件内容引入进来,今天突然醒悟如果是引用的php文件会引入执行,即不但原样引入进当前文件还会进行php解析执行。前一段要做一个根据配置文件中的配置进行不同的操作,之前一直不知道该怎么读取数组配置文件,现在终于明白了。 配置文件: config.php <?php return
摘要: 消息队列是个好东西,各种×××MQ很多。然而看一下它们的文档,你得吓尿,什么鬼,我只是想用它触发个短信接口而已。 幸好也有简单的。这次是php-resque 安装 首先这货需要在linux下跑,非得用windows就别看了,也不是不能装,费劲且性能渣 得有composer,嫌慢的也拉倒吧,别看了,本文不介绍没有composer怎么办 安装composer也不是本文要点,在ubuntu(其实
后台任务和PHP-Resque的使用(四) 使用Worker 发表于 2015-04-05 | 分类于 PHP | | 阅读次数 1134 注意,这篇教程仅适用于Linux和OS X的系统,Windows并不适用。 理解Worker的本质 技术上讲一个Worker就是一个不断运行的PHP进程,并且不断监视新的任务并运行。 一个简单的Worker的代码如下:
1. require在代码执行前被预处理,被引用的文件内容会替代掉require语句。 include在代码执行到那一句才被处理,相当于执行流跳到被执行的文件,执行完再跳回来。 2. require的文件不存在会报fatalerror,并终止。include的文件不存在时只会warnning并继续执行。 3. require的文件中只能放置:变量初始化,函数的定义以及类和接口的定义,不能放置
日志未经声明,均为AlloVince原创。版权采用『 知识共享署名-非商业性使用 2.5 许可协议』进行许可。Share on twitterShare on facebookShare on google_plusone_shareShare on sinaweiboShare on douban 消息队列处理后台任务带来的问题 项目中经常会有后台运行任务的需求,比如发送邮件时,因为要连接邮件服
require()一般用于引入文件,然而,它居然还可以有返回值: $r = require('config.php'); 当然,config.php需要像方法一样给出返回值: return array( 'charset' => 'utf-8', 'app_name'=> 'php fun' ); ?> 这样我们就可以方便读取config.php中的内容了。在上面的例子中,require()返回的
PHP-Resque是现成的框架,基於 Redis 开发消息队列系统,消息队列服务要求比较轻量级,用于创建后台作业,将这些作业放在多个队列中,并在稍后处理它们。发短信,发邮件,执行不那么着急的数据库操作等等,比如发送邮件时,因为要连接邮件服务器,往往需要5-10秒甚至更长时间,如果能先给用户一个成功的提示信息,然后在后台慢慢处理发送邮件的操作,显然会有更好的用户体验。 第一章 准备 php-res
在PHP编程中,经常会通过require、require_once来引用另一个文件,都可以达到引用文件的目的,但他们之间还是有一些细微的区别的,下来就来详细的说一下。 php require 的理解 require:php的内置函数,作用是引入或者包含外部的php文件 原理:当本身php文件被执行时,则外部文件的内容就将被包含进该自身的文件中;也可以理解为,外部所要引用的文件的代码,会替换 req
include() 和require() :语句包括并运行指定文件。 include() 产生一个警告而 require() 则导致一个致命错误。换句话说,如果你想在遇到丢失文件时停止处理页面就用 require()。include() 就不是这样,脚本会继续运行。 require_once() 语句在脚本执行期间包括并运行指定文件。此行为和 require() 语句类似,唯一区别是如果该文件
一、安装 php-resque 进入项目根目录,composer 安装 php-resque composer require chrisboulton/php-resque 二、常用方法 1、连接 redis //setBackend($server, $database = 0) Resque::setBackend('127.0.0.1:6379'); 2、向队列中添加工作 //enqueu
在PHP的页面编程过程中,我们总遇到这样一个问题,即是PHP是一个顺序执行的过程,只能在一个任务完成后接着去实现下一个任务,而这其中存在一个问题,就是假如其中一个任务耗费大量时间的时候,我们可能就必须要等待。借助redis可以将耗时任务放到后台去执行,从而减少等待时间。 Redis 是一个高性能的key-value数据库。可以帮助我们有效的实现后台任务,将耗费大量时间的任务迁移到后台去执行,可以节
本文向大家介绍PHP版本号,包括了PHP版本号的使用技巧和注意事项,需要的朋友参考一下 总是向PHP添加不同的功能和选项。尽管新版本通常不会产生太多的向后兼容性问题,但是编写谨慎的生产代码通常是明智的,您知道这些代码将在运行该语言稍旧版本的服务器上运行。 要检查当前使用的PHP版本,可以使用函数phpversion()或常量PHP_VERSION。函数和常量都返回一个包含版本号的字符串。可以使用两
本文向大家介绍VBScript版的PHP extract()函数,包括了VBScript版的PHP extract()函数的使用技巧和注意事项,需要的朋友参考一下 写过PHP的都知道,其有个extract()非常方便,可以便捷的将字典转换为变量,当然到ASP中则要受限很多,特别是VBScript脚本,本文叙述的就是一种转换的思路,可以实现类似的功能。 下面我就直接提供ASP版本的extract代码
Apache 2.4.25 php 5.6.30 php 7.1.4我成功地做了几次。但是现在php 5.6.30不能工作,只有php 7.1.4工作。太奇怪了... httpd vhosts。形态 都index.php 我在我的电脑上做的,好的<然后我在我的nb上做了这个,好的 我重新安装nb的windows 10,好的 现在我重新安装电脑的windows 10,不正常。 该页面显示500个内部
Elasticsearch-PHP 6.0 需要 PHP 7.0.0 或者更高版本。另外,它还需要原生 JSON 扩展的版本为 1.3.7 或者更高版本。。
当我执行phpInfo时。我的Linux(fedora)上的php脚本 它给出了PHP版本5.5 而当我使用我的Apache服务器(通过浏览器)到达它时,它给了我旧的PHP 5.3版本。 发现Apache正在使用一些库(LoadMoulesphp5_module模块/libphp5.so)-在php.conf.中找到它 有人能帮助如何更改Apache正在使用的版本吗? 或者还有其他方法迫使Apac
我想在Hostgator共享主机上部署我的Laravel 3项目。Laravel 3所需的最小php是php56。Hostgator中默认的php是php54,低于所需的版本。 我按照这个指令在HG中找到了php56,然后我找到了它。然后我编辑了~/.bashrc。 现在,当我检查php版本时,它清楚地表明它是 PHP 5.6.30(cli)(内置: Mar27 2017 11:42:52)Cop
如何让composer使用我安装的较新版本的php?我已经下载并在所有本地服务器上使用了PHP5.4,但当我下载composer时,它指向我的mac电脑的默认设置#/usr/local/bin/env版本,即5.3.15。我试图编辑composer可执行文件并更改使用的php,但它破坏了可执行文件。 我试图使用作曲家来安装Laravel,因为它下载了错误的版本。 这就是我的composer可执行文