php批量发送短信或邮件的方案

最近遇到在开发中遇到一个场景,后台管理员批量审核用户时候,需要给用户发送审核通过信息,有人可能会想到用foreach循环发送,一般的短信接口都有调用频率,循环发送,肯定会导致部分信息发送失败,有人说用sleep()睡一会儿,这样也不行,如果遇到用户多的情况肯定会导致php执行超时,楼主参考网上方案,有2种解决方案,第一种是用队列,比较常用的有rabbitMQ,这一个跨多语言的消息队列实现,功能很强大,具体可以百度,由于这个场景算小,不打算用rabbitMQ,还有一种方案,就是用Linux任务计划,crond,

1,在linux中crond是由crontab管理的,在终端中输入crontab -e 可以新建一个任务,任务的格式是: * * * * * [执行的脚本]

2, 各个*号代表 分 时 日 月 周 ,比如我需要没半个小时执行一个操作: */30 * * * * curl http://域名/控制器/操作,还可以指定范围内 : 0,30 7-22 * * * curl http://域名/控制器/操作表示每天的7点到10中间每半个小时执行一次操作

3,首先将每次的审核用户id存入一个queue表中,表中有用户对应的电话号码,

4,然后写一个发送操作,每次取出5条,

5,然后开启一个定时计划,来执行这个操作,新建完任务后,service crond restart 重启计划,然后service crond status可以看到正处在运行的任务,

注意:新建过程都是用vi命令操作,新建完后wq一定要保存

时间: 2024-10-29 09:35:32

php批量发送短信或邮件的方案的相关文章

批量发送短信,并批量插入短信记录

最近在项目中遇到了群发短信的需求. 需求点包括: 1.给符合条件的人群发优惠券短信 2.并对发送短信做记录,成功或者失败.(SqlServer) 短信接口: 亿美,api中有群发短信的接口,一组最大为200条. 思路: 1.发送的手机集合放进一个队列 2.依次读取队列,放到待发送列表,当满足200(短信组个数可配置在web.config中)条时,调用接口发送,直到队列数据发完 3.发送结果放进已发送短信结果集合 4.把发送结果批量插入数据库 代码: 群发helper /// <summary>

swift发送短信和邮件

// MARK: - Action // MARK: compose mail 发送邮件 @IBAction func composeMail(sender: AnyObject) { // 判断能否发送邮件 guard MFMailComposeViewController.canSendMail() else { print("不能发送邮件") return } let mailVC = MFMailComposeViewController() mailVC.mailCompos

阿里云批量发送短信功能测试

package com.yongjie.ZhiJianSbpt.sms; import java.text.SimpleDateFormat; import java.util.Date; import com.aliyuncs.DefaultAcsClient; import com.aliyuncs.IAcsClient; import com.aliyuncs.dysmsapi.model.v20170525.QuerySendDetailsRequest; import com.aliy

Quartz.net定时发送短信和邮件(2.30版本)

Quartz.net程序包区官方下载.解压需要要bin里边的[Quartz.dll][Common.Logging.Core.dll][Common.Logging.dll]这三个类库,然后把这三个类库添加到自己的项目bin文件夹中中然后引用.然后在web.config appSetting配置文件中添加<add key="cronExpr" value="0 54 16 * * ?"/> value的值是你要什么时候调度的时间我设置的是每天的下午四点5

监控MySQL主从同步是否异常,如果异常,则发送短信或者邮件给管理员

要求:每30秒实现检测一次.如果同步出现如下错误号(1158,1159,1008,1007,1062),则跳过错误. #!/bin/sh#monitor mysql master to salve connection#by zkg 2019-08-22 . /etc/init.d/functions #Define variablesMYSQLUSER=rootMYSQLPASSWD=DbAppSOCKET=/data/mysql/tmp/mysql.sockMYSQLCMD="mysql -

调用系统的打电话,发短信,邮件,蓝牙

在开发某些应用时可能希望能够调用iOS系统内置的电话.短信.邮件.浏览器应用,此时你可以直接使用UIApplication的OpenURL:方法指定特定的协议来打开不同的系统应用.常用的协议如下: 打电话:tel:或者tel://.telprompt:或telprompt://(拨打电话前有提示) 发短信:sms:或者sms:// 发送邮件:mailto:或者mailto:// 启动浏览器:http:或者http:// 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

iOS学习笔记28-系统服务(一)短信和邮件

一.系统应用 在开发某些应用时,我们可能希望能够调用iOS系统内置的电话.短信.邮件.浏览器应用,或者直接调用安装的第三方应用,这个要怎么实现呢? 这里统一使用UIApplication的一个对象方法来实现: //打开不同的系统应用 - (void)openUrl:(NSURL *)url; 那怎么区分我是要打电话还是发短信等等呢?之前我们学习网络的时候,是不是URL最前面使用的是http://,使用本地文件是不是前面就变成file://了,这就是URL的协议,我们就是控制URL的协议,来打开不

sqlalchemy中使用event设置条件触发短信与邮件通知

一.原因 近期在做短信与邮件通知系统.使用到了这一块.例如,当订单完成以后进行邮件短信的通知.虽然可以采用直接调用接口的方式实现,但有几个原因让我希望使用条件触发的方式 1.由于系统中支持线上线下以及代充值等多种方式,所以在多个地方订单改变状态.这样就让触发通知的代码凌乱分布. 2.系统将来扩建,需要新增加接口.则需要新增加调用的代码. 总而言之,直接调用将会增加维护难度.因此准备在订单的状态首次被置为支付成功时候进行短信与邮件的通知. 二.模块需求 短信与邮件的通知不能影响内部系统的运行,但由

IOS中调用系统的电话、短信、邮件、浏览功能

iOS开发系列--通讯录.蓝牙.内购.GameCenter.iCloud.Passbook系统服务开发汇总 2015-01-13 09:16 by KenshinCui, 26990 阅读, 35 评论, 收藏, 编辑 --系统应用与系统服务 iOS开发过程中有时候难免会使用iOS内置的一些应用软件和服务,例如QQ通讯录.微信电话本会使用iOS的通讯录,一些第三方软件会在应用内发送短信等.今天将和大家一起学习如何使用系统应用.使用系统服务: 调用系统应用 使用系统服务目 录 短信与邮件 通讯录