`

网站消息实时推送与缓存处理

阅读更多
一:在rails5中推出了ActionCable来实现消息的websoket推送
参考链接
https://ruby-china.org/topics/28935
https://ruby-china.org/topics/30494
https://ruby-china.org/topics/28480

二:在某些使用场景下页可以考虑js定时轮询刷新的方式去做。(比如强制点击处理,消息才会不再弹出。)

下边分享一段,用redis缓存消息记录,当点击才会取消显示,但只有真正处理才会改变状态的代码。

# 数据库查询消息
def not_opration_message
	_employee_id=current_employee.id
	@not_opration_message = Message.where("employee_id=? and state=0",_employee_id) #查询所有未处理的消息
	render :layout=> false
end

# 数据库处理消息
def deal_with_system_message
    _employee_id=current_employee.id
    _messages=Message.where("id=?",params[:id]) #查询所有未处理的消息
    _message.update_all(:state=>1) #已处理
    render :json => true
end

# 缓存处理消息
def delete_system_message
    _employee_id=current_employee.id
    redis=Redis::HashKey.new("user_#{_employee_id}")
    redis.delete(params[:url])
    render :json => true
end

# 缓存个人所有消息
def system_message
    _employee_id=current_employee.id
    redis=Redis::HashKey.new("user_#{_employee_id}")
    if redis.blank?
      render :json=> nil
    else
      render :json=> redis.to_json
    end
end

#订单确认通知,创建消息并缓存
def self.tell_customer_order_confirm customer_order
  customer_order_detail = customer_order.order_details_userful
  customer_order_detail.each do |detail|
    Message.create(message:"#{customer_order.order_no} 客户订单已确认,通知供应商发货", url:"/admin/order_list?order_no=#{customer_order.order_no}",state:0,employee_id:detail.emp)
    message_hash = Redis::HashKey.new("user_#{detail.emp}")
    message_hash["/admin/order_list?order_no=#{customer_order.order_no}"] = "#{customer_order.customer_order_no} 客户订单已确认,通知供应商发货"
  end
end
0
0
分享到:
评论

相关推荐

    【YouDianCMS v9.1】 开源五合一建站系统+友点企业网站管理系统+数据自动同步.zip

    4、内置网站优化功能SEO优化:系统后台可以设置伪静态、设置HTML静态缓存策略、搜索引擎优化设置、常用搜索引擎登录入口、生成网站地图、生成关键词内链、百度自动推送 功能模块: 功能列表 核心功能:电脑站、手机...

    java微信公众号MVC开发框架

    微信在处理消息推送时,如果没有获得响应,会隔5秒重试,最多重试3次。jwx在接到消息推送时,需要判断该消息是否已经接受过,如果接受过,则需要放弃处理。jwx设计了MessageKeyCache接口用于处理消息重排,里面需要...

    New Cms博客系统 v1.0.161011

    代码精简,执行效率高6.SEO功能强大,支持主动推送/mip推送,并且支持301跳转,内容替换等,智能摘要等。7.代码适配,手机访问直接使用wap模板,无需单独建站。8.支持mip模板。9.懒人必备功能,支持自动保存远程图片...

    简单CMS购物分享平台 1.3.zip

    2数据可根据站长的需求进行自动有效推送。 3数据均为用户分享。 4广告精准定位。 5注重用户体验。 6运行高效。 功能特性: 数据均为用户分享 不论是用户在网站中分享的产品,还是管理员后台采集到的数据,...

    【YouDianCMS v9.1】 开源五合一建站系统+友点企业网站管理系统+数据自动同步

    4、内置网站优化功能SEO优化:系统后台可以设置伪静态、设置HTML静态缓存策略、搜索引擎优化设置、常用搜索引擎登录入口、生成网站地图、生成关键词内链、百度自动推送 功能模块: 功能列表 核心功能:电脑站、手机...

    kafkaESK:一个事件驱动的监视工具,该工具可以使用来自Apache Kafka群集的消息,并在仪表板上显示聚合数据以进行分析和维护

    关于: KafkaESK当前处于Beta版,是一个事件驱动的监视工具,可以使用来自Apache Kafka群集的消息,并在仪表板上显示...接收实时推送更新 按需拉动当前状态 转换,过滤,聚合和加入集合 推和拉查询 缓存先前运行的查询

    小旋风蜘蛛池站群X8.5最新无限制版站群系统源码

    增加手动触发自动采集/推送(可加入宝塔任务计划触发) 因熊掌号下线,更换为百度《快速收录》链接提交 { 随机图片}标签支持本地化 加密前台广告调用标识符 修正自定义域名 TKD 不支持某些标签 修复采集问题...

    小旋风万能蜘蛛池X8.51 免.zip

    增加手动触发自动采集/推送(可加入宝塔任务计划触发) 因熊掌号下线,更换为百度《快速收录》链接提交 { 随机图片}标签支持本地化 加密前台广告调用标识符 修正自定义域名TKD不支持某些标签 修复采集问题(此前的会...

    苹果CMS程序是一套采用PHP+MYSQL环境下运行的完善而强大的快速建站系统

    程序体积小->优化程序代码,运行速度快->高效的缓存处理,只要普通的虚拟主机就可以完美搭建起来,建站成本非常低。仿MVC模板分离,内置标签,自定义函数标签接口,强大的自定义采集功能,只要你会HTML就可以轻松...

    Discuz! X2.5 正式版 繁体中文 BIG5 20130222

    X2.5新版本推出四大新体系:新社区形态、新技术体系、新门户系统以及新移动化体验,其中新门户系统主要从内容推送、图片裁切、模块管理等角度进行了深度优化,拟帮助站长和编辑更加省时省力地运维网站,提高网站...

    Discuz! X2.5 正式版 繁体中文 UTF-8 20130222

    X2.5新版本推出四大新体系:新社区形态、新技术体系、新门户系统以及新移动化体验,其中新门户系统主要从内容推送、图片裁切、模块管理等角度进行了深度优化,拟帮助站长和编辑更加省时省力地运维网站,提高网站...

    PHPCMS 企业黄页模块 v9 UTF-8 正式版.zip

    9、管理员可以对商家用户的信息二次编辑,支持推送至推荐位及推送到其他内容模型功能; 10、管理员可看会员组设置商家信息直接发布、模型使用的权限; 11、模块配置可设置注册企业是否需要审核、是否支持在线交易...

    PHPCMS 企业黄页模块 v9 GBK 正式版.zip

    9、管理员可以对商家用户的信息二次编辑,支持推送至推荐位及推送到其他内容模型功能; 10、管理员可看会员组设置商家信息直接发布、模型使用的权限; 11、模块配置可设置注册企业是否需要审核、是否支持在线交易...

    FineCMS 1.8.0 UTF8.zip

    推荐位功能可以让编辑随时把信息推送至指定位置,操作简单实用。 文字块功能 把一些小段内容放在文字块中,支持HTML代码和图片上传。 自定义URL规则 可以完全自定义URL地址规则,包括栏目、内容及自定义页。 ...

    Java开源的下一代社区平台Symphony.zip

    实时(按发布时间降序,实时推送新回帖) 头像浏览模式:原图(支持 gif 动图);静态图 Chrome 通知/邮件订阅/键盘快捷键开关 设置常用 Emoji,方便发布内容时快速插入表情 除了功能个性化配置项,还有很多...

    yogurt:电子竞技的饲料聚合

    馈送处理程序抓取设置站点并将可用 VoD、实时流和即将到来的事件的 JSON 表示推送到 Redis 缓存中。 网站 编译安装 在 Mac 上开发: # get Python 3 - redis and node + npm $ brew install npm python3 redis # ...

    股票监控平台.zip

    订阅分发模块监控到有报警信息后主动向微信订阅用户推送;同时部署有微信服务器,完成与微信用户的交互。 爬虫(Web Crawler)是一种自动化程序,用于从互联网上收集信息。其主要功能是访问网页、提取数据并存储,...

    工程硕士学位论文 基于Android+HTML5的移动Web项目高效开发探究

    第三章 跨域交互缓存处理设计 17 3.1 跨域交互缓存处理需求 17 3.1.1 缓存技术WebStorage 17 3.1.2 跨域交互缓存处理需求 17 3.1.3 页面回退管理需求 17 3.2 缓存处理机制 18 3.2.1 跨域缓存处理 18 3.2.2页面回退...

    大数据在生活中的应用(1).doc

    最简单的例子,每天我们打开一些带有广告性的网页,网页的两侧总会 弹出一些商品推荐,而这些推荐正是由于大数据通过你平时在淘宝、天猫等交易网站上搜 索过的商品信息,再提供给商家,广告商从而给你推送与你相关的...

Global site tag (gtag.js) - Google Analytics