添加redis纪录回调:
class Notification < ApplicationRecord
def read!
self.read_at = Time.now
self.save
end
belongs_to :operator, :class_name => "Employee", :foreign_key => "operator_id"
default_scope ->{where("read_at is null")}
before_create :add_redis_message
def add_redis_message
message_hash = Redis::HashKey.new("employee_#{self.employee_id}")
message_hash["#{self.link}"] = "#{self.msg}"
end
end
class Admin::NotificationsController < Admin::BaseController
include ExemptedFromLogging
def index
employee_id = current_employee.id
redis = Redis::HashKey.new("employee_#{employee_id}")
if redis.blank?
render :json=> nil
else
render :json=> redis.to_json
end
end
def show_massage
employee_id = current_employee.id
redis = Redis::HashKey.new("employee_#{employee_id}")
redis.delete(params[:url])
redirect_to params[:url]
end
end
在aplication.js中添加:
//= require messenger
//= require messenger-theme-future
Messenger.options = {
extraClasses: 'messenger-fixed messenger-on-bottom messenger-on-right',
theme: 'block',
messageDefaults: {
showCloseButton: true,
hideAfter: 0
}
}
var refreshMessages = (function(){
return function(){
$.get('/admin/notifications', function(response){
$.each(response, function() {
var _this = this;
var url = this.toString().split(",")[0]
var value = this.toString().split(",")[1]
var attr = { message: '[url=/admin/notifications/show_massage?url='+url+']' + value + '[/url]', type: 'info' ,id:value};
Messenger().post(attr);
});
}, 'json');
}
})();
var startRefreshMessages = function(){
refreshMessages();
setInterval(refreshMessages, 5 * 1000);
}
layout 中引入:
<script type="text/javascript">
<% if !Rails.env.development? %>
startRefreshMessages();
<% end %>
</script>
gem requie
gem "messengerjs-rails", "~> 1.4.1"
分享到:
相关推荐
运行环境 jdk8+oracle+redis+IntelliJ IDEA+maven 项目技术(必填) Springboot+Mybatis-plus+ SpringMvc+Shiro+Redis 数据库文件 压缩包内 jar包文件 maven搭建 Springboot+Mybatis-plus+ SpringMvc+Shiro+Redis企业...
jdk8+oracle+redis+IntelliJ IDEA+maven 项目技术(必填) Springboot+Mybatis-plus+ SpringMvc+Shiro+Redis 数据库文件 压缩包内 jar包文件 maven搭建 Springboot+Mybatis-plus+ SpringMvc+Shiro+Redis企业...
基于SpringBoot+Vue+sa-token前后端分离的科研项目管理平台 前端采用Vue、Element UI 后端采用Spring Boot、Redis & Jwt。 Sa-Token:一个轻量级 java 权限认证框架,让鉴权变得简单、优雅! 权限认证使用Jwt,支持...
Redis以网络服务的方式运行,允许客户端通过网络连接进行读写操作,广泛应用于缓存、消息队列、实时统计等多种场景。 **Redis的优势** 1. 高性能:Redis是基于内存的操作,读写速度极快。 2. 数据结构丰富:支持...
例如,如果你有一个消息发送的任务,你可以先将消息ID推入Redis的列表中,然后后台进程定期检查并处理列表头部的消息,完成发送。 除了基本的入队出队操作,PHP-Redis扩展还支持更复杂的功能,如发布/订阅模式、...
Redis 集群是分布式数据存储的一个重要解决方案,它提供了高可用性和数据持久化功能,广泛应用于缓存、消息队列等场景。本压缩包包含了搭建 Redis 集群所需的三个关键组件:Ruby 安装器(RubyInstaller)、Redis 的 ...
基于 springboot+mybatis_+shiro + redis+activiti+quarts+quartz+vue 写的一个前后分离办公企业管理系统 ,通用服务端,用于学习。 使用技术 服务端: springboot(2.2.1) + mybatis-push + shiro(1.4.0) + redis +...
同时,Redis++也可以用于消息队列,用于异步处理任务。除此之外,Redis++也可以作为数据存储系统,用于存储结构化数据。 Redis++是一个功能强大且灵活的缓存系统,它可以满足各种应用场景的需求。通过这篇文章,...
Redis是一款开源的、高性能的键值对存储系统,适用于数据缓存、消息队列等多种场景。它支持多种数据结构,如字符串、哈希、列表、集合和有序集合,这使得Redis在处理实时数据、分布式计数和发布/订阅系统等方面表现...
其中包含:redis-5.0.3.tar.gz + redis-5.0.4.tar.gz + redis-5.0.5.tar.gz 以及。。。 一个redis的下载地址,各版本可选。 以及…… 可以思考下收藏这个网站,见压缩包。
- 在微服务中,WebSocket常用于实现聊天室、实时推送通知等场景,提高用户体验。 4. **Redis**: - Redis是一个高性能的键值数据库,广泛用于缓存、消息队列等场景。 - 通过Redis,可以快速存储和检索数据,减少...
毕业设计+Python基于Scrapy+Redis分布式爬虫设计+源码案例+Python + Scrapy + redis 毕业设计+Python基于Scrapy+Redis分布式爬虫设计+源码案例+Python + Scrapy + redis 毕业设计+Python基于Scrapy+Redis分布式爬虫...
Smart Shop是一款基于 Spring Cloud +MybatisPlus+XXL-JOB+redis+Vue的前后端分离、分布式、微服务架构的Java商城系统,采用稳定框架开发及优化核心,减少依赖,具备出色的执行效率,扩展性、稳定性高,H5/小程序/...
Redis是一款高性能的键值对数据存储系统,常用于缓存、数据库和消息中间件等场景。这个压缩包包含了在Linux操作系统上安装Redis所需的基本文件,以及一个Windows平台下的Redis桌面管理工具,方便用户进行远程访问和...
一个简单的后端框架,实现步骤可以根据文章 ...2.springboot+JWT+redis实现token身份令牌验证(附代码)(超详细) https://blog.csdn.net/pengpm/article/details/124077041?spm=1001.2014.3001.5501
Redis是一款开源的、基于键值对的数据存储系统,常用于数据缓存、消息队列以及数据库功能。在Windows操作系统上,Redis的安装和管理通常通过图形界面工具进行,如Another Redis Desktop Manager。此资源包“Redis-...
Redis是一款高性能的键值存储系统,它被广泛用于数据库、缓存、消息中间件等多种场景。这个"redis-6.2.6-x64-windows.zip"压缩包包含了针对Windows 10和Windows Server 2016等64位操作系统的Redis版本。以下是关于...
springboot + mybatis-plus + database+ 多数据源 + redis + hutool 框架干净,没有其他冗余的成分; 配置了MP的代码生成器,意见生成代码,节省开发时间! 可用于各种定时任务处理,各种夸库操作, 多数据源支持...
redis基本命令:编程技术+redis开发+redis指令深度解析+应用开发;编程技术+redis开发+redis指令深度解析+应用开发;编程技术+redis开发+redis指令深度解析+应用开发;编程技术+redis开发+redis指令深度解析+应用...
Java本科毕业设计NBA球员数据管理系统源码+数据库,基于springboot+mybatis-plus+mysql+redis的NBA球员数据管理系统,本科毕业设计项目 后端: springboot 2.2.5.REALSE mybatis-plus mysql 8 redis 6 前端: ...