本文目录一览:
- 1、php任务进度条功能,求思路
- 2、php定时执行任务怎么写?
- 3、PHP实现定时任务的几种方式
- 4、php discuz的定时任务是什么原理怎么实现的?求高手解答
- 5、ThinkPHP怎么做定时任务
- 6、我想用php做个任务提醒功能,如我今天添加一个任务,任务时间是明天,到了明天我这个任务做个主动提醒
php任务进度条功能,求思路
你这是OA功能还是什么,如果是OA消息发送接收应该不是实时的.邮件通知或者站内信通知
不知你是否已经有框架 都存数据库就行没必要几维数组
首先是项目表 任务表 员工表
项目表和任务表一对多 并在任务表加order字段排序
任务表和负责人一对多 一个任务可以多个负责人 如果只允许一个负责人就更简单了
比如项目表中 projectID=1 name=测试项目
任务表中
taskID=1 projectID=1 order=1 text=第1个任务 isdone=fasle
taskID=2 projectID=1 order=2 text=第2个任务 isdone=fasle
taskID=3 projectID=1 order=3 text=第3个任务 isdone=fasle
taskID=4 projectID=1 order=4 text=第4个任务 isdone=fasle
taskID=5 projectID=1 order=5 text=第5个任务 isdone=fasle
员工表中
personID=1 name=员工1 taskID=1
personID=2 name=员工2 taskID=2
personID=3 name=员工3 taskID=3
personID=4 name=员工4 taskID=4
personID=5 name=员工5 taskID=5
personID=6 name=员工6 taskID=2
6个员工其中第六个员工和第二个员工都是处理第二个任务的
于是就都关联上了 isdone是否完成任务 根据这个判断显示几个
进度条很简单 5张前置图一张背景 完成了的显示前置图 没完成的不显示 这样就是进度条了
要实时更新就有用ajax动态更新
数据库自己家其他字段....
吃饭去了....全手打..自己想的..
php定时执行任务怎么写?
定时任务最好的方法是用linux系统的加护任务来写,你是虚拟主机那无法用这个法子,你可以写前台访问触发的法子,把代码写到页面,判断时间段如果是在设置的时间段就执行。
PHP实现定时任务的几种方式
一. 简单
?php
ignore_user_abort();//关掉浏览器,PHP脚本也可以继续执行.
set_time_limit(0);// 通过set_time_limit(0)可以让程序无限制的执行下去
ini_set('memory_limit','512M'); // 设置内存限制
$interval=60*30;// 每隔半小时运行
do{
//ToDo
sleep($interval);// 等待5分钟
}
while(true);
二. 简单 可控型
config.php
?php
return 1;
?
cron.php
ignore_user_abort();//关掉浏览器,PHP脚本也可以继续执行.
set_time_limit(0);// 通过set_time_limit(0)可以让程序无限制的执行下去
$interval=60*30;// 每隔半小时运行
do{
$run = include 'config.php';
if(!$run) die('process abort');
//ToDo
sleep($interval);// 等待5分钟
}
while(true);
三. 简单 改进型
?php
$time=15;
$url="http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
/*
function
*/
sleep($time);
file_get_contents($url);
?
php discuz的定时任务是什么原理怎么实现的?求高手解答
php中定时计划任务的实现原理:
当 PHP 脚本正常地运行 NORMAL 状态时,连接为有效。当远程客户端中断连接时,ABORTED 状态的标记将会被打开。远程客户端连接的中断通常是由用户点击 STOP 按钮导致的。当连接时间超过 PHP 的时限时,TIMEOUT 状态的标记将被打开。-php待办任务功能
示例代码:
?php
ignore_user_abort(true);set_time_limit(0);
date_default_timezone_set('PRC'); // 切换到中国的时间
$run_time = strtotime('+1 day'); // 定时任务第一次执行的时间是明天的这个时候
$interval = 3600*12; // 每12个小时执行一次
if(!file_exists(dirname(__FILE__).'/cron-run')) exit(); // 在目录下存放一个cron-run文件,如果这个文件不存在,说明已经在执行过程中了,该任务就不能再激活,执行第二次,否则这个文件被多次访问的话,服务器就要崩溃掉了-php待办任务功能
do {
if(!file_exists(dirname(__FILE__).'/cron-switch')) break; // 如果不存在cron-switch这个文件,就停止执行,这是一个开关的作用
$gmt_time = microtime(true); // 当前的运行时间,精确到0.0001秒
$loop = isset($loop) $loop ? $loop : $run_time - $gmt_time; // 这里处理是为了确定还要等多久才开始第一次执行任务,$loop就是要等多久才执行的时间间隔-php待办任务功能
$loop = $loop 0 ? $loop : 0;
if(!$loop) break; // 如果循环的间隔为零,则停止
sleep($loop);
// ...
// 执行某些代码
// ...
@unlink(dirname(__FILE__).'/cron-run'); // 这里就是通过删除cron-run来告诉程序,这个定时任务已经在执行过程中,不能再执行一个新的同样的任务
$loop = $interval;
} while(true);
ThinkPHP怎么做定时任务
这个功能用服务器上面的定时任务做吧,
非得用php也可以做,使用
set_time_limit(0);
ignore_user_abort(true);
写一个死循环,sleep(1),每秒执行一次,具体业务逻辑你自己写,建议这个php程序,依赖一些外部数据来维持,每执行一次,然后记录执行次数到数据库,或者文件里,每次执行读取这个执行次数记录,用来控制程序的执行个数(因为这个程序算是永久进程,除非服务器重启了),除了控制执行次数,也要增加一个文件,数据库记录,来记录一个状态,每次程序执行同时去检查这个状态,如果是1,则执行,如果是0则程序终止,并且前面的执行次数-1,。这样就可以手动结束这些永久php进程了,同时也可以写一些日志,来观察程序的运行状况-php待办任务功能
我想用php做个任务提醒功能,如我今天添加一个任务,任务时间是明天,到了明天我这个任务做个主动提醒
楼主我大概了解你的意思,要实现这种问题应该是可以通过两种方案,一个是后端推送提醒(但是web程序如果不通过浏览器访问的话不能像APP一样可以推送消息后提醒啊~),另外一种就是前端开定时器匹配时间,匹配后提醒,大概思路如下-php待办任务功能
1:后端长轮询提醒,查询到后,基本不现实,如果浏览器支持websocket还可以考虑,为了通用性还是别考虑了。
2:前端提醒
a.后端将提醒时间打到页面,js开个setInterval进行匹配,时间匹配相同时提醒
b.通过ajax,也是定时想后端请求,后端检测是否需要提醒,来返回前端,让前端处理