需求很简单,每天给几个邮箱发送前一天的销售数据。
你想用whenever?sidetiq?还是别的什么gem?
我选择独立一个ruby脚本,crontab自动执行。
require 'active_record'
require "net/smtp"
require 'mysql2'
require 'yaml'
config = YAML::load(File.open(File.dirname(__FILE__) + "/database.yml"))
ActiveRecord::Base.establish_connection(config)
def query_data
## debug
# start_time = '2014-12-23 00:00:00'
# end_time = '2014-12-23 23:59:59'
start_time = (Date.today - 1).to_s + ' 00:00:00'
end_time = (Date.today - 1).to_s + ' 23:59:59'
sql = 'SELECT sum(h.order_amount) FROM shop_order as h' +' '+\
'where (h.status<>-10 and h.status<>0)' +' '+\
'and (h.pay_time>= "' + start_time + '" and h.pay_time<= "' + end_time + '")' +' '+\
'and h.order_type="normal"'
p sql
ActiveRecord::Base.connection.select_value sql
end
def chinese_date
"#{(Time.now - 1.day).year}年#{(Time.now - 1.day).month}月#{(Time.now - 1.day).day}日"
end
def send_mail(data_user)
from_address = "rendy@shop.nipponpaint.com.cn"
to_address = ["s—————@nipponpaint.com.cn", "w——@d——.com", "l——@d——.com"]
mail = "Subject: 【立邦商城】" + chinese_date + "销量\r\n" +\
"To: s————@nipponpaint.com.cn; w——@d——.com; l——@d——.com\r\n" +\
"Dear all,\r\n" +\
"\r\n" +\
"立邦官方商城" + chinese_date + "的普通会员销量为:" + data_user.to_s + "元"
Net::SMTP.start('localhost') do |smtp|
smtp.send_mail(mail, from_address, to_address)
end
end
puts Time.new
puts '----Job Start----'
amount_user = query_data
amount_user = '0' unless amount_user
p "=>" + amount_user.to_s
send_mail(amount_user)
puts '----Job Finished----'
puts Time.new
exit;
crontab -e
加上一条
45 18 * * * /usr/local/bin/ruby /var/www/mail/ontime/baby.rb
相关推荐
该插件支持多种通知方式,包括电子邮件、短信、Webhook等,可以根据团队的需求进行灵活配置。在初始化插件时,你可以设置错误通知的接收者、发送方式以及错误分类。例如,你可能希望将致命错误发送给整个团队,而将...
在实际应用中,resque-scheduler可以用于各种场景,如定期备份数据库、发送邮件通知、执行数据分析等。它简化了定时任务的管理,使得开发者可以更专注于任务的逻辑,而无需关心何时触发任务的问题。 通过压缩包中的...
通过使用Ruby编写作业脚本,开发者可以充分利用Ruby的语法和库,创建复杂的定时任务。同时,minicron允许用户以JSON或YAML格式定义作业配置,这样可以更直观地管理和维护作业列表。 在部署和配置方面,Ruby-...
把它想象成 ActionMailer,但用于定时电子邮件序列。 它还可以执行其他操作,例如发送短信。 入门 开始使用 Heya 很容易: 安装 Heya gem 将此行添加到应用程序的 Gemfile 中: gem "heya" , github : "honey...
这是一个Ruby的GEM,通过它配合crontab可以定时的给你的朋友们发送包含: 天气预报 近期电影 历史的今天等内容的邮件, 而且该GEM的扩展性非常好,只要你写了一个插件放到源码的feature目录,并且这个类实现了fdata方法,...
9. **自动化的邮件服务**:如果博客中还包括了这一部分,可能会讲解如何结合Rails的作业队列(如Sidekiq或Resque)来安排定时发送邮件。 10. **最佳实践**:最后,分享一些使用AWS SES的最佳实践,例如如何批量发送...
4. **邮件发送**:发送生日祝福可能通过 SMTP 协议来实现,Ruby 的 `mail` gem 提供了发送邮件的功能。开发者需要配置 SMTP 服务器的详细信息,包括用户名、密码、服务器地址等,然后使用 `Mail` 对象创建并发送邮件...
"这个标题和描述暗示了一个关于定时提醒功能的软件项目,它可能是用Ruby编程语言实现的。Ruby是一种面向对象的、灵活的编程语言,常用于构建Web应用、脚本以及各种实用工具,因其简洁的语法和强大的元编程能力而受到...
为了高效地管理网络资源、监控数据变化和执行定时任务,许多企业和开发者开始寻找可靠的自动化工具。其中,Huginn以其强大的功能和灵活的配置脱颖而出,成为了一个备受瞩目的解决方案。本文将深入探讨Huginn的核心...
6. **Notifier**:通知器将构建状态通过邮件、IM等方式发送给团队成员,帮助他们及时了解构建情况。 ### 三、CruiseControl.rb的安装与配置 1. **安装**:CruiseControl.rb通常通过RubyGems进行安装,运行`gem ...
4. **延迟和定时任务**:ActiveMQ支持延时发送和定时投递,可以用来安排未来某个时间执行的任务,如定时发送邮件通知或执行定期备份。 整合Spring和SpringBoot是使用ActiveMQ的常见实践。Spring框架提供了与...
每天我们清除30天以上的所有检查数据定时任务: 每3小时抓取一次pkg特定数据每4小时刮擦一次维护人员级别的数据每天填充一次历史路线通知事项Sidekiq用于处理/安排/重试通知电子邮件Redis用于Sidekiq存储Sendgrid...
使用`App\Console\Kernel`中的`schedule`方法,开发者可以定义定时任务,这些任务可以按计划在服务器上运行,例如发送定期邮件、清理缓存等。 **7. 艺术家命名空间和自动加载:** Laravel遵循PSR-4标准,使用艺术家...
5. **适用场景**:适用于那些需要在特定时间点执行的任务,如定时发送邮件、处理过期订单、执行周期性检查等。 通过这个插件,RabbitMQ能够更灵活地处理消息,提供了强大的定时和延迟功能,使开发者能够构建更加...
- **邮件发送**:即时发送邮件可能会阻塞用户操作,将邮件发送任务放入队列,可以提高用户体验。 - **消息通知**:例如,用户完成某操作后,需要发送短信或邮件通知,可以将通知任务放入队列,避免直接影响主业务...
4. **自动化任务**:用户可以通过脚本自动化日常的手机任务,例如定时开关机、自动发送邮件等。 5. **扩展性**:SL4A允许开发自定义的脚本模块,以实现特定的功能。 SL4A对于初学者和经验丰富的开发者都极具价值。...
- **异步操作**:比如邮件发送、图片处理等耗时操作,避免阻塞主线程。 - **消息通知**:定时发送通知或提醒,如订阅更新、优惠券到期提醒等。 - **限流控制**:通过作业队列平滑系统负载,防止短时间内大量请求...
这些任务可以基于时间间隔(如每小时、每日、每周等)或特定的时间点触发,从而帮助开发者实现各种后台作业,例如数据同步、报表生成、邮件发送等。 【标签】"Ruby" 指出my_scheduler是用Ruby编程语言编写的,Ruby...
7. **Cron与Web应用集成**:在Rails或其他Web框架中,Cron任务常用于定期执行后台任务,如数据同步、发送邮件、清理缓存等。它们通常不直接与用户交互,而是作为服务层的一部分。 通过理解和有效地利用`schedule_...
- **批量数据处理**:如用户注册后的邮件发送、图片处理等。 - **后台同步**:例如从API获取数据、数据库同步等。 - **定时任务**:如每天生成报表、清理过期数据。 - **事件驱动**:当满足特定条件时触发的任务,如...