怎么实现
呢
没有思路啊
laravel 的脚本?
linux crontab 脚本?
mysql脚本?
【路人】 - No Promises °<
yjd@yanjiadong.net> 17:19:13
自己写个控制器 然后放在crontab中定时访问啊
定时任务,数据库事件,都可以实现
在麻烦点,登录管理后台、用户登录的时候检测事件改写状态
史文仲远(958186957) 17:05:20
@ H.K ? 这个我不太认同 ? 万一在过期那天时间 用户没登录 管理员登录了 那么管理员界面显示的还是 启用状态啊
你说的定时任务是 ? linux cron 还是 ?
H.K(404937886) 17:06:33
登录管理后台 不就是管理员登录的么。。
难道你的用户还可以登录管理后台?
想做到及时性,就定时任务,数据库事件
对及时性要求不高,后两者效率比较好控制
其实sql是比较推荐的
H.K(404937886) 17:07:43
第一效率比较高,第二及时性也还可以
就linux自带的定时任务
laravel的定时任务也是用这个的吧
一个蛋蛋的马化腾(873811021) 17:15:32
@史文仲远 如果不想用定时任务。。
那就管理员登录的时候也检查下过期时间。。。
史文仲远(958186957) 17:15:43
?你的意思是管理员登录后以的时候 有一个前置中间件 来进行 判断时间 ,然后设置 is_active=0?
H.K(404937886) 17:18:35
登录的时候直接设置 xxx 字段 小于 当前时间 is_active=0
判断都不用判断 2行代码搞定
但是还是推荐定时任务
或者数据库事件
史文仲远(958186957) 17:19:21
哦
史文仲远(958186957) 17:22:22
定时任务有个问题 就是以后 迁移网站的时候 就失效
【骑士】史文仲远(958186957) 16:55:37
@
【巨龙】神奇的胖子(1370841) 16:55:38
一种你可以在用户开通代理的时候, 直接加一个延时队列, 延时到过期时间,执行禁用
一种是你在linux下写一个crond任务, 定时查询到期前7天切没禁用的用户, 加入延时队列,执行禁用 定时任务每7天运行一次 时间随你设置
【骑士】史文仲远(958186957) 16:56:13
哦 使用 cron 我做过
这个思路不错
【巨龙】 (150584840) 16:56:22
简单的在Mysql里面写个event,定时执行
【巨龙】神奇的胖子(1370841) 16:56:36
还有开个中间件,直接把到期作为验证条件 过期就不给权限
【骑士】史文仲远(958186957) 16:57:10
@神奇的胖子 中间件 也得有人访问来触发这个中间啊
如果 过期的人 没有访问的话 那么 管理员看到的 还是处于启用状态啊
【巨龙】神奇的胖子(1370841) 16:57:50
@ 在mysql中执行稳定吗?
【骑士】史文仲远(958186957) 16:58:17
mysql 里写事 件 我没有想过
【巨龙】 (150584840) 16:58:56
event用了好久了,
【骑士】史文仲远(958186957) 16:59:09
mysql 事件 用了好久了?
【巨龙】 (150584840) 16:59:17
是啊
【骑士】史文仲远(958186957) 16:59:28
我个人感觉 py 可能 做这些比较好
【巨龙】 (150584840) 16:59:38
比如清理过期的数据,修改某些数据等
【骑士】史文仲远(958186957) 16:59:44
哦
【巨龙】神奇的胖子(1370841) 16:59:54
那你用mysql event吧 毕竟只涉及数据修改
【骑士】史文仲远(958186957) 17:00:02
好的
H.K(404937886) 16:57:16
定时任务,数据库事件,都可以实现
在麻烦点,登录管理后台、用户登录的时候检测事件改写状态
史文仲远(958186957) 17:05:20
@ H.K
? 这个我不太认同 ? 万一在过期那天时间 用户没登录 管理员登录了 那么管理员界面显示的还是 启用状态啊
你说的定时任务是 ? linux cron 还是 ?
H.K(404937886) 17:06:33
登录管理后台 不就是管理员登录的么。。
难道你的用户还可以登录管理后台?
想做到及时性,就定时任务,数据库事件
对及时性要求不高,后两者效率比较好控制
其实sql是比较推荐的
H.K(404937886) 17:07:43
第一效率比较高,第二及时性也还可以
就linux自带的定时任务
laravel的定时任务也是用这个的吧
一个蛋蛋的马化腾(873811021) 17:15:32
@史文仲远 如果不想用定时任务。。
那就管理员登录的时候也检查下过期时间。。。
史文仲远(958186957) 17:15:43
你的意思是管理员登录后以的时候 有一个前置中间件 来进行 判断时间 ,然后设置 is_active=0?
日天(394703554) 16:55:31
定时器
lambda calculus
(757299208) 16:56:06
- -给个过期时间戳,当前时间大于这个过期时间就是禁用状态呗
日天(394703554) 16:56:45
他指的是执行 禁用事件
不是状态
Dawn(250810491) 17:00:01
意思是 这个过期时间戳来当“状态”使用
日天(394703554) 17:00:42
到时间了 自动执行 update
必然 是 定时器
对酒当歌(543464943) 17:02:34
在服务端把延迟时间计算好,
史文仲远(958186957) 17:03:32
我这个思路不清了
这个定时器是 laravel 的功能?
还是 mysql
还是 linux?
日天(394703554) 17:04:29
linux的crontab是不能满足你的需求的
可以使用java的 quartz,或者 py写定时,或者其他语言
Dawn(250810491) 17:06:03
没有这么麻烦 我看这个过期时间是按“日”算的。 计划任务一天跑一次就行
史文仲远(958186957) 17:06:19
@日天 为什么 crontab 不能满足?
日天(394703554) 17:06:17
因为 你牵涉 动态 分配 计划任务了
crontab不行
计划任务的 修改 添加
lambda calculus
(757299208) 17:07:36
一天跑一次定时脚本,脚本内自己chunk过期用户也可以呀
日天(394703554) 17:07:53
浪费
而且 会有误差
Dawn(250810491) 17:08:31
laravel自带的计划任务。。 就是每时每刻都在跑。 你说浪费不。。。
lambda calculus
(757299208) 17:08:46
quartz也不是按绝对时间来调度的呀........
日天(394703554) 17:08:50
那东西会有人用
史文仲远(958186957) 17:09:11
@日天 不懂 我 crontab 每天 0 点执行某个php文件 这个php来执行 mysql 的 里面 的 is_active=1啊
Dawn(250810491) 17:09:24
重要的是 它这个时间没有精确到时分秒。。 是“日”
lambda calculus
(757299208) 17:10:22
日的话感觉一个crontab就够了,没必要整的那么复杂....
日天(394703554) 17:10:25
swoole的定时器 也不错
Dawn(250810491) 17:10:58
lambda calculus
(757299208) 17:11:54
粗暴点crontab一个php脚本。。。 update set is_active = 0 WHERE 过期条件 ......
日天(394703554) 17:12:21
会有误差的
这样 会员过期 可能会多用 一会
史文仲远(958186957) 17:12:45
@日天 ?有误差是什么意思
不太懂
日天(394703554) 17:14:00
脚本执行是一个固定时间,固定时间之前 就是一个空档期
日天(394703554) 17:15:31
比如 我是 今天 18点 过期,你脚本 夜晚 22点执行
Dawn(250810491) 17:15:36
每天0点执行的话 他这个空档期最多就是 脚本的执行时间。然而这个执行时间很短
日天(394703554) 17:15:40
我不就多用了一会吗
Dawn(250810491) 17:15:50
他这个是按“日”的。。。
lambda calculus
(757299208) 17:16:48
如果是这种业务的话。。。我感觉都不需要定时器,类似Laravel中间件,验证用户的时候多验证一个当前时间是否大于过期时间戳。。。。。大于就不让用。。。。后台禁用按钮也可以这样判断可操作状态
H.K(404937886) 16:57:16
定时任务,数据库事件,都可以实现
在麻烦点,登录管理后台、用户登录的时候检测事件改写状态
史文仲远(958186957) 17:05:20
@ H.K
? 这个我不太认同 ? 万一在过期那天时间 用户没登录 管理员登录了 那么管理员界面显示的还是 启用状态啊
你说的定时任务是 ? linux cron 还是 ?
H.K(404937886) 17:06:33
登录管理后台 不就是管理员登录的么。。
难道你的用户还可以登录管理后台?
想做到及时性,就定时任务,数据库事件
对及时性要求不高,后两者效率比较好控制
其实sql是比较推荐的
H.K(404937886) 17:07:43
第一效率比较高,第二及时性也还可以
就linux自带的定时任务
laravel的定时任务也是用这个的吧
一个蛋蛋的马化腾(873811021) 17:15:32
@史文仲远 如果不想用定时任务。。
那就管理员登录的时候也检查下过期时间。。。
史文仲远(958186957) 17:15:43
?你的意思是管理员登录后以的时候 有一个前置中间件 来进行 判断时间 ,然后设置 is_active=0?
H.K(404937886) 17:18:35
登录的时候直接设置 xxx 字段 小于 当前时间 is_active=0
判断都不用判断 2行代码搞定
但是还是推荐定时任务
或者数据库事件
史文仲远(958186957) 17:19:21
哦
史文仲远(958186957) 17:22:22
定时任务有个问题 就是以后 迁移网站的时候 就失效了
H.K(404937886) 17:26:27
….
为什么会这样想。。
定时任务有个文件
直接复制到新环境就可以了。。
史文仲远(958186957) 17:27:12
文件放在 laravel 项目的哪里?
看来只能放 控制器了?
日天(394703554) 16:55:31
定时器
lambda calculus
(757299208) 16:56:06
- -给个过期时间戳,当前时间大于这个过期时间就是禁用状态呗
日天(394703554) 16:56:45
他指的是执行 禁用事件
不是状态
Dawn(250810491) 17:00:01
意思是 这个过期时间戳来当“状态”使用
日天(394703554) 17:00:42
到时间了 自动执行 update
必然 是 定时器
对酒当歌(543464943) 17:02:34
在服务端把延迟时间计算好,
史文仲远(958186957) 17:03:32
我这个思路不清了
这个定时器是 laravel 的功能?
还是 mysql
还是 linux?
日天(394703554) 17:04:29
linux的crontab是不能满足你的需求的
可以使用java的 quartz,或者 py写定时,或者其他语言
Dawn(250810491) 17:06:03
没有这么麻烦 我看这个过期时间是按“日”算的。 计划任务一天跑一次就行
史文仲远(958186957) 17:06:19
@日天 为什么 crontab 不能满足?
日天(394703554) 17:06:17
因为 你牵涉 动态 分配 计划任务了
crontab不行
计划任务的 修改 添加
lambda calculus
(757299208) 17:07:36
一天跑一次定时脚本,脚本内自己chunk过期用户也可以呀
日天(394703554) 17:07:53
浪费
而且 会有误差
Dawn(250810491) 17:08:31
laravel自带的计划任务。。 就是每时每刻都在跑。 你说浪费不。。。
lambda calculus
(757299208) 17:08:46
quartz也不是按绝对时间来调度的呀........
日天(394703554) 17:08:50
那东西会有人用
史文仲远(958186957) 17:09:11
@日天 不懂 我 crontab 每天 0 点执行某个php文件 这个php来执行 mysql 的 里面 的 is_active=1啊
Dawn(250810491) 17:09:24
重要的是 它这个时间没有精确到时分秒。。 是“日”
lambda calculus
(757299208) 17:10:22
日的话感觉一个crontab就够了,没必要整的那么复杂....
日天(394703554) 17:10:25
swoole的定时器 也不错
Dawn(250810491) 17:10:58
lambda calculus
(757299208) 17:11:54
粗暴点crontab一个php脚本。。。 update set is_active = 0 WHERE 过期条件 ......
日天(394703554) 17:12:21
会有误差的
这样 会员过期 可能会多用 一会
史文仲远(958186957) 17:12:45
@日天 ?有误差是什么意思
不太懂
日天(394703554) 17:14:00
脚本执行是一个固定时间,固定时间之前 就是一个空档期
日天(394703554) 17:15:31
比如 我是 今天 18点 过期,你脚本 夜晚 22点执行
Dawn(250810491) 17:15:36
每天0点执行的话 他这个空档期最多就是 脚本的执行时间。然而这个执行时间很短
日天(394703554) 17:15:40
我不就多用了一会吗
Dawn(250810491) 17:15:50
他这个是按“日”的。。。
lambda calculus
(757299208) 17:16:48
如果是这种业务的话。。。我感觉都不需要定时器,类似Laravel中间件,验证用户的时候多验证一个当前时间是否大于过期时间戳。。。。。大于就不让用。。。。后台禁用按钮也可以这样判断可操作状态