ROR中如何实现,用户某行为造成一个时间后的某个效果。

问题描述

举例来说,比如用户A,做了事情B,然后这个事情会在X小时之后让用户A获得某些经验之类的。要求是X小时后,无论用户A是否在线,该行为效果都能够产生。问题补充:我说的这个定时是属于动态定时的。相当于用户要触发了某个动作才会开始计时,然后直到时间结束产生某个效果。

解决方案

这个好实现的很!靠数据库的记录和一个定时的任务调度来实现。用户A,做了事情B,你就向Things表中插入一条记录,保存起来,那个created_at字段记下了用户A这事情B时的准确时间。现在搞一个后台任务定时执行一个时间检查(如每10分钟执行一次),将当前时间与数据表中的那个记录的created_at对比,看结果是否是大于或者等于X小时,如果是就让用户A获得某些经验之类的思路很清析啊,对比这个任务调度,有rails自带的runner,还有backgroundRD什么的,记不得名字了,就是一个在后台不断执行的程序而已,这东西有点像java中的Timmer或者Quter什么的。
解决方案二:
在 lib 中写 robot.rbclass Robot def self.do xxx endend定时ruby script/runner Robot.do

时间: 2024-10-06 19:16:10

ROR中如何实现,用户某行为造成一个时间后的某个效果。的相关文章

dialog工具中,访问用户输入的结果为什么要重定向"标准错误流"?而不是“标准输出流”?

问题描述 dialog工具中,访问用户输入的结果为什么要重定向"标准错误流"?而不是"标准输出流"? 标题限制,完整问题为------dialog工具中,对于文本输入,访问用户输入的结果为什么要重定向"标准错误流"?而不是"标准输出流"? 看Neil Matthew著的<Linux程序设计>65页中关于dialog访问用户输入结果的一点思考,想知道其中的一些机制.小白求助亲们解答一些,谢谢. 解决方案 iunx 下

设计观点:公司中如何推行用户体验策略

本来用户体验这个事情只是我们从业者热菜炒冷饭的事情,把很多概念与技术手段打包一下投入到产品(服务)设计的初期,并在整个过程中进行检验.迭代.优化.重复的过程.但是我发现,即使在工程师林立.高智商货色充裕的通信产品或者互联网行业中,仍然还是少不了所谓"专业的用户体验设计师" - 这个称呼虽然就不专业,但是非常好理解. 问题来了,大部分一腔热血投入圈子的朋友们,一则有可能过去在平面,在视觉,在前端开发上混得不好,于是找个务虚的靠山继续保住饭碗,运气好的话还能顺便增值:一则有可能不愿意继续干

5个关于购物车中未答复用户的问题

电子商务中的购物可谓是网络实验的绝佳场所,一些简单的改变(布局,文字,色彩等等)常常带来意想不到的结果.这里罗列出了几个在我们用户看来未给予答案的问题,我们认为答案就在页面上,但用户却不这么认为.如果你不能确定未答复用户的问题是什么,你可以回到上几个步骤--使用角色设计或者用户测试来找出它们. 这里是5个关于购物车中未答复用户的问题(排除运费): 你们提供了其他的支付方式吗(除了信用卡)? 你们安全和可靠吗? 为什么你们要求我提供这个信息? 我必须有一个账号才能购买吗? 在交易前,我能回头查看我

ASPNET中实现在线用户检测(使用后台守护线程)

后台|在线 以下是我的类文件, //online.cs(用户在线检测)/*程序实现思路: 该用户有以下几个属性:name:用户名sessionID:用户ID,通过它唯一表示一个用户iswhere :附加信息,用户当前所在位置lasttime:用户登陆时间curtime:本次刷新时间 在客户端,使用一个IFRAME,装载一个刷新页面,每隔XX秒更新一下他的名字对应的curtime,就表示他仍然在 在服务器端,建立一个守护线程,每隔固定时间就运行一遍,然后判断当前所有用户列表中的时间间隔是否超出了规

在asp.net中为Web用户控件添加属性和事件

asp.net|web|控件 在asp.net中为Web用户控件添加属性和事件 在90年代初,Microsoft为Web程序员提供的 Active Server Pages(ASP)革命性地改变了Web的编程.它可以利用十分易用的模型在Web服务器上动态生成HTML,并且很容易的实现了对数据库的访问,就当时来说,这是一项多么吸引人的技术,包括现在Internet上的许多web站点都是用Asp写的,我的同事前辈们更是玩Asp的高手,经历这么多年而不衰,可见他的成功. 但是,技术是在不断的发展着,引

如何从统计数据中分析出用户体验度好坏

每当说起用户体验,确实很让站长们伤脑筋,因为这个玩意既摸不清.看不到.道不明的,当你认为网站的用户体验应该很好时,上天却给你开个玩笑;当你觉得自己更新的内容,用户也应该喜欢时,上天再次给你开个玩笑.而就用户体验的好坏而言,其实只要你抓住关键点也能分析得知.每个网站都应该装有统计工具吧,而这个工具就是让咱们掌握网站详细情况的一大利器,包括分析出网站的用户体验度的好坏.那么针对这个工具,咱们应该从哪些方面进行分析用户体验度的好坏呢?今天笔者来谈谈这个问题. 一.网站IP与PV值的比例 一个网站的用户

Vista系统中UAC(用户帐户控制)存在的真正意义

使用过Vista系统的用户应该都清楚,在Vista系统中有一个非常烦人的UAC提示,每当运行一个程序时,系统 就会弹出一个UAC对话框,询问"继续"OR"取消",而此时屏幕变暗,只有这个对话框 十分醒目.大部分时候我们都选择了"继续".用户可能会感觉非常麻烦,于其每次都继续,不如禁 用UAC,有这种想法或这样做了的用户不在少数. 出现这种情况的原因就在于大家都不太了解UAC,微软花费大量精力开发UAC功能并不只是为了给用户找麻烦 . 在Vista

oracle中如何创建用户

一.用户的概念 用户,即user,通俗的讲就是访问oracle数据库的"人".在oracle中,可以对用户的各种安全参数进行控制,以维护数据库的安全性,这些概念包括模式(schema).权限.角色.存储设置.空间限额.存取资源限制.数据库审计等.每个用户都有一个口令,使用正确的用户/口令才能登录到数据库进行数据存取. 二.用户默认表空间 表空间是信息存储的最大逻辑单位.当用户连接到数据库进行资料存储时,若未指出数据的目标存储表空间时,则数据存储在用户的默认表空间中. 比如:create

Mac OS X中启用超级用户的方法

Root user,又名超级用户,是一个权力最高的Unix 账户,Root 的账户能在整个系统里任何部份进行任何"操作",包括:拷贝档案.移动/移除档案.执行程序等.所以,通常 Root 的账户都只会指派给高级专业的用户使用.因此,苹果把Root user 隐藏在Mac OS X 里. 但有时候我们不得不启用Root用户以便于实现某些操作,可以通过以下三种方法把启动Root账户. 方法一: 把Mac OS X 的安装光盘放入到光驱中,用光盘启动系统,在安装菜单里选择"Pass