首页
学习
活动
专区
圈层
工具
发布
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    如何在Ubuntu 14.04上使用Ansible部署高级PHP应用程序

    这是使用mysql_user模块完成的,我们可以使用stdout我们在密码生成任务中定义的变量选项来获取shell命令的原始输出,如下所示:dbpwd.stdout。...在此步骤中,我们将为Laravel配置队列守护程序worker。 队列工作者与cron作业类似,因为他们在后台运行任务。...不同之处在于应用程序通过用户执行的操作或通过cron作业调度的任务将作业推送到队列中。队列任务由工作者一次执行一次,并且当在队列中找到它们时将按需处理。...一分钟后,它将更新为如下所示: Queue: YES Cron: YES 这意味着队列工作者正在后台正常工作。我们在上一步中启动的cron作业将作业推送到队列中。...此作业在运行时更新数据库以显示其正在运行。 我们现在有一个工作示例Laravel应用程序,其中包括正常运行的cron作业和队列工作程序。

    11.8K60

    PHP-web框架Laravel-队列(三)

    作业优先级Laravel队列系统还支持作业优先级,这意味着我们可以为不同类型的作业分配不同的优先级。优先级高的作业将在优先级低的作业之前处理。优先级默认为0,值越高表示优先级越高。...例如,我们可以使用以下代码将作业推送到"high"队列:ProcessPodcast::dispatch($podcast)->onQueue('high');然后,我们可以使用以下命令启动一个专用的队列进程来处理高优先级队列...Laravel默认的作业超时时间为60秒。我们可以在定义作业类时使用--timeout选项来设置超时时间。...重试作业Laravel队列系统默认会自动重试作业,如果一个作业失败了,它将被重新推送到队列中,直到达到最大尝试次数。最大尝试次数默认为3,可以在config/queue.php中进行配置。...Laravel默认会将失败的作业写入日志文件。我们还可以在config/queue.php中配置将失败的作业发送到其他通知渠道,例如电子邮件或Slack。

    1.4K11

    基于 Redis 消息队列实现文件上传的异步存储

    不过在 Laravel 中,我们可以基于消息队列完成文件存储的异步处理:编写一个处理文件上传的任务类,当有文件上传时,将该文件的存储操作通过任务类推送到消息队列,最后通过队列处理器进程异步处理存储和其他后续操作...,前台接到菜单需求后立即将做菜任务推送到后台作业队列,然后不需要等到菜做完就可以将响应告知顾客(发起请求的用户)—— 你的菜品已经在准备中了。...运行 sail artisan migrate 让上述数据库变更生效。 定义模型类和关联关系 在模型类 Image 中定义其与 Post 的一对多关联: 的使用效率,关于这一部分的详细实现,我们留到后面专门开辟的消息队列系列教程中给大家演示。...的 path 属性以便在处理任务类时使用。

    4K20

    这份 Redis 使用规范,拿走不谢

    数据库中间件 Sharding-JDBC 和 MyCAT 源码解析 作业调度中间件 Elastic-Job 源码解析 分布式事务中间件 TCC-Transaction 源码解析 Eureka 和 Hystrix...1、项目redis使用问题 2、慎用laravel自带的cache功能 3、注意key的过期时间设置 4、小心缓存穿透 5、慎用缓存层层包裹 6、慎用将redis做为消息队列 五、查询使用问题 1、线上...建议以业务名为前缀,以冒号分割来构造一定规则的key名(比如业务名:表名:id) 比如:teach:leeson_id:21 3....2、慎用laravel自带的cache功能 laravel自带的cache功能最容易导致大key,经常由于简单使用至今将整个对象模型存储到redis,造成大key。...6、慎用将redis做为消息队列 如没有非常特殊的需求,严禁将 Redis 当作消息队列使用。redis 当作消息队列使用,会有容量、网络、效率、功能方面的多种问题。

    1.3K50

    基于 Redis 在 Laravel 中实现消息队列及底层源码探究

    在上面的示例代码中,我们将文章 ID 作为消息数据进行传递。 处理进程 消费端的处理进程通常是一个或者多个常驻内存的进程,它们或订阅或轮询消息队列,如果消息队列不为空,则取出其中的消息数据进行处理。...Laravel 队列系统实现和使用 基本配置 不过,Laravel 提供了更优雅的队列系统实现,不需要我们手动去编写队列、消息和处理进程的实现代码,并且支持不同的队列系统驱动,包括数据库、Beanstalkd...消息数据 Laravel 队列系统中的消息数据会以任务类形式提供,并且针对不同的驱动再做一层封装,从而方便底层进行统一处理,对于 Redis 驱动的队列系统,最终获取到的数据会通过 RedisJob 封装后返回...,this->payload() 中返回的是反序列化后的任务类负荷数据,其余字段则是底层根据消息队列配置自动获取的。...你可以参考 Laravel 队列文档了解更多 Laravel 队列使用细节,除此之外,Laravel 还提供了一个适用于 Redis 队列系统的一体化解决方案 —— Horizon,推荐在生产环境使用它作为

    6.9K30

    为什么 Laravel 这么优秀?

    所有和 Laravel 的交互包括操作队列,数据库迁移,生成模版文件等;你都可以通过这个脚本来完成,这也是官方推荐的最佳实践之一。...,如下面的 teacher_id 在数据库中并不存在。...我们还使用了 Laravel Resource 来格式化最终的输出格式,这样做的原因是很多情况下我们不希望直接将数据库的字段暴露出去,你甚至还能在 Laravel Resource 中按不同的角色显示不同的字段...put($key, $value, $seconds); } 在使用 Cache 时,我们基本不用关心到底用的是文件缓存还是 Redis 缓存;在使用队列时也不用关心用的是 sync 队列还是专业的...;如 CacheServiceProvider 会向容器中注册 Cache 对象,后续在使用 Cache::get 时就使用的是这里注册的 Cache 对象,在注册阶段不应该向容器中获取值,因为此时服务可能还没有

    2.8K10

    PHP-web框架Laravel-队列(二)

    定义作业在 Laravel 中,定义作业是通过实现 Illuminate\Contracts\Queue\Job 接口来完成的。这个接口定义了一个 fire 方法,用于处理作业的逻辑。...$event->job->resolveName()); }); }}// .envQUEUE_CONNECTION=redis这些代码实现了一个简单的队列作业。...当我们访问网站主页时,它会将一个处理播客的作业推送到队列中。我们还注册了两个队列事件监听器来记录作业何时开始处理和何时处理完成。我们将队列连接设置为Redis。...当我们运行作业时,可以在Laravel日志文件中查看两个事件的记录。...我们可以使用以下命令查看日志文件:php artisan log:tail通过这些代码,我们可以更好地了解如何在Laravel中使用队列来执行后台作业。

    71900

    可视化队列管理工具 Laravel Horizon 来了

    文章翻译&整理自 Taylor 的 博客文章 Taylor 在今天发布了一个新工具:Laravel Horizon ,它为 Laravel Redis 队列提供了一个漂亮的仪表板和代码驱动的配置系统。...Horizon 的仪表板是一个 Vue 单页应用,可以使用命令 composer require laravel/horizon 直接安装进已有的应用中。...它提供队列工作负载、最近作业、失败作业、作业重试、吞吐量和运行时指标、进程计数的实时显示。...;}); 配置 与 Laravel 的调度程序类似,你所有队列 worker 的配置都在你的代码之中: ?...这些度量快照是使用命令 horizon:snapshot 捕获的,它可以使用 Laravel 内置调度每分钟运行一次,方便你在部署之后快速查找性能下降的原因。 通知 ?

    3.7K40

    Laravel之队列「建议收藏」

    在该文件中你将会找到框架自带的每一个队列驱动的连接配置,包括数据库、Beanstalkd、 IronMQ、 Amazon SQS、 Redis 以及同步(本地使用)驱动。...2:connections配置项包含了Laravel支持的所有队列驱动,我们使用Redis驱动,所以需要配置redis项:connection对应config/database.php中redis的default...5:failed配置项用于配置失败队列任务存放的数据库及数据表。这里我们需要按照自己的数据库配置对其做相应修改。...使用databases为例 为了使用database 队列驱动,需要一张数据库表来存放任务,要生成创建该表的迁移,运行 Artisan 命令queue:table ,迁移被创建好了之后,使用migrate...类似的,数据库连接应该在后台长时间运行完成后断开,你可以使用DB::reconnect 方法确保获取了一个新的连接。

    2.1K10

    UEC规范v1.0 - 2.软件层_整体架构_UE与libfabricAPI映射关系详解

    在作业初始化时执行 JobID 分配时,特权实体必须通过 UET 控制 API 与提供程序内核驱动程序配置 {OS 进程 ID,服务名称} => {JobID} 映射,如图 2-4 所示。...当特权实体在作业初始化时配置 JobID 时,提供程序内核驱动程序必须维护已配置的 JobID 映射以供后续使用。...o 操作系统进程 ID o 服务名称 • 在 Linux 实现中,UET 提供程序应使用 Netlink 接口与内核驱动程序进行地址分配通信。...• 如果在作业初始化时未提供(参见 2.2.4 节),地址分配响应必须包含以下信息: o 作业 ID ▪ 如果请求进程在作业初始化时配置了一个作业 ID,则响应中提供的作业 ID 应优先。...▪ 如果请求进程在作业初始化时配置了多个作业 ID,并且启用了 FI_AV_AUTH_KEY 功能,则响应中提供的作业 ID 应被忽略。

    60910

    PHP-web框架Laravel-缓存(二)

    三、缓存驱动程序Laravel框架的缓存服务提供了多种缓存驱动程序,可以满足不同的需求。我们可以在config/cache.php配置文件中配置使用哪种缓存驱动程序。...下面是Laravel框架支持的缓存驱动程序列表:array:将数据存储在数组中,通常用于测试;file:将数据存储在文件中,可以使用本地文件系统或云存储服务(例如Amazon S3);database:...下面是一个使用Redis作为缓存驱动程序的示例:中,我们使用redis作为缓存驱动程序,并通过容器注入Illuminate\Contracts\Cache\Repository接口的实例来访问缓存服务...我们使用get方法从Redis缓存服务器中读取数据,如果数据不存在,则从数据库中读取数据,并使用put方法将数据存储到Redis缓存服务器中。

    48921

    LaravelLumen 使用 redis队列

    一、概述 在Web开发中,我们经常会遇到需要批量处理任务的场景,比如群发邮件、秒杀资格获取等,我们将这些耗时或者高并发的操作放到队列中异步执行可以有效缓解系统压力、提高系统响应速度和负载能力。...connections配置项包含了Laravel支持的所有队列驱动,我们使用Redis驱动,所以需要配置redis项:connection对应config/database.php中redis的default...failed配置项用于配置失败队列任务存放的数据库及数据表。这里我们需要按照自己的数据库配置对其做相应修改。...要使用 redis 队列驱动,需要在配置文件 config/database.php 中配置 Redis 数据库连接。...简单处理可以使用 php artisan queue:work --daemon & 10、运行队列监听器 开始进行队列监听 laravel 包含了一个 Artisan 命令来运行推送到队列中的任务的执行

    2.8K20

    Laravel中简单使用队列加快访问速度

    前言 Laravel 队列服务为各种不同的后台队列提供了统一的 API 允许推迟耗时任务(例如发送邮件)的执行,从而大幅提高 web 请求速度 总而言之,队列就是在后台执行一些耗时的任务,从而让前台访问速度加快...比较典型的例子就是发邮件。特别是同一时间发送多个邮件时。 程序员啊,就是折腾的命啊! 步骤 迁移队列需要的表 才开始尝试使用队列,还是简单点,使用数据库就行。...修改配置文件: 在.env文件里默认有: QUEUE_CONNECTION=sync,也即默认使用的是sync驱动,我们这里改为database 【数据库】 ?...php artisan queue:failed 3、重新执行失败任务 重新执行指定id失败的任务 php artisan queue:retry 1 此处的 1 失败任务表中的任务的 id...:forget 2 此处的 2 失败任务表中的任务的 id, 表示清除指定id失败任务 清除所有失败的任务 php artisan queue:flush

    1.9K00

    PHP-web框架Laravel-缓存(一)

    通过缓存,Web应用程序可以减少对数据库或其他慢速存储介质的访问,提高响应速度和性能。...在Laravel框架中,缓存被视为一个服务提供者,它提供了一个统一的缓存接口,允许我们使用多种缓存驱动程序,例如内存缓存、文件缓存、数据库缓存、Redis缓存等。...二、Laravel的缓存服务Laravel框架的缓存服务提供了一种简单而强大的缓存机制,允许我们轻松地使用多种缓存驱动程序。...return $data; }}在上面的示例中,我们使用容器注入Illuminate\Contracts\Cache\Repository接口的实例来访问缓存服务。...我们使用get方法从缓存中读取数据,如果数据不存在,则从数据库中读取数据,并使用put方法将数据存储到缓存中。

    51531
    领券