定时任务schtasks.exe php定时任务 asp定时任务 windows服务器定时任务

之前曾经写了一篇关于php程序定时任务文章
<<php如何实现定时任务 php定时任务方法 最佳解决方案 php自动任务处理>>http://blog.xxtime.com/?p=642

Unix系统中可以使用crontab来很方便的实现定时任务
同样windows系统中我们也可以使用schtasks 计划任务 来完成我们的定时任务程序
当然您要有权限,更多关于权限问题请联系您的空间服务商,此方法适合自己有服务器 或者vpn的用户

举例如下:

schtasks /create /ru "System" /sc minute /mo 5 /st 00:00:00 /tn "KBPublisher freq task" /tr "[PHP_DIR]php.exe [KBP_DIRECTORY]admincronfreq.php"

schtasks /create /ru "System" /sc hourly /st 00:00:00 /tn "KBPublisher hourly task" /tr "[PHP_DIR]php.exe [KBP_DIRECTORY]admincronhourly.php"

schtasks /create /ru "System" /sc daily /st 00:01:00 /tn "KBPublisher daily task" /tr "[PHP_DIR]php.exe [KBP_DIRECTORY]admincrondaily.php"

schtasks /create /ru "System" /sc weekly /st 00:10:00 /d SUN /tn "KBPublisher weekly task" /tr "[PHP_DIR]php.exe [KBP_DIRECTORY]admincronweekly.php"

schtasks /create /ru "System" /sc monthly /st 00:20:00 /tn "KBPublisher monthly task" /tr "[PHP_DIR]php.exe [KBP_DIRECTORY]admincronmonthly.php"

其中: [PHP_DIR] – 替换为完成的php.exe路径, [KBP_DIRECTORY] – 替换为完整的应用程序路径. 都要替换为自己的路径值

举例: schtasks /create /ru “System” /sc minute /mo 5 /st 00:00:00 /tn “KBPublisher freq task” /tr “C:phpphp.exe C:wwwkbpublisheradmincronfreq.php”

关于schtasks的详细使用请参考 http://www.cnblogs.com/lostyue/archive/2011/10/24/2223166.html

php如何实现定时任务,php定时任务方法,最佳解决方案,php自动任务处理

定时任务对于php来说一直都是很多朋友的一个难题,但却很多地方都遇到了。
比如说:
游戏开发程序中,每隔10分钟给玩家发兵一次
sns社区中每隔20秒检测一下是否有人给我发消息
自动采集程序,每隔5分钟采集一次最新内容
微博数据同步,每隔10个小时通过微博api接口同步一次用户数据
……

大概有那么几种方法:
1.Linux系统
定时直接可以用cron来执行一个php脚本 或者其他语言的脚本[你要有足够的系统权限]
执行编辑cron命令

crontab -e

比如每隔5分钟执行下 /root/bin目录下的test.php脚本

*/5 * * * * php /root/bin/test.php

2.windows系统
可用计划任务执行脚本,不举例

3.如果没有系统权限,那就往下看吧。
由于php属于解释型弱语言,所以做定时任务的时候不会像java那样容易,在java中直接给个进程就可以让系统执行定时任务,但是在php中没那么简单 设置都没有多线程的概念。

我第一次接触定时任务的时候是一个做php的朋友问我怎么实现定时发兵,我当时给出的答案是写一个包含文件,每次都执行的时候都调用这个文件检查是否有任务,但试想 如果没人触发怎么办,显然答案并不完美。

后来我又通过其他渠道获得了解决的最佳办法,而且我还亲自做了测试。
大致理念就是设定关闭浏览器程序也会停留在服务器内存中执行,并且相应时间永不过期
看程序:

ignore_user_abort(TRUE);// 设定关闭浏览器也执行程序
set_time_limit(0);      // 设定响应时间不限制,默认为30秒

$count = 0;
while (TRUE)
{
    sleep(5);           // 每5秒钟执行一次

    // 写文件操作开始
    $fp = fopen("test".$count.".txt", "w");
    if($fp)
    {
        for($i=0; $i<5; $i++)
        {
            $flag=fwrite($fp,$i."这里是文件内容www.xxtime.comrn");
            if(!$flag)
            {
                echo "写入文件失败";
                break;
            }
        }
    }
    fclose($fp);
    // 写文件操作结束

    $count++;
    // 设定定时任务终止条件
    if (file_exists('lock.txt'))
    {
        break;
    }
}

把这个文件命名为 tast.php 放在网站根目录
如: www.xxtime.com/tast.php
访问此网页。此程序会再网站根目录不断生成名为test0.txt,test1.txt,test2.txt…的文本文件
访问后可关闭浏览器,不影响程序继续执行,如想阻止程序,请在网站根目录下放一个名为lock.txt的文件。
如:www.xxtime.com/lock.txt
当然重新启动服务器或者重启电脑也可以阻止程序继续运行

相关内容:
windows的schtasks定时任务:http://www.cnblogs.com/lostyue/archive/2011/10/24/2223166.html

Cron服务是SAE为开发者提供的分布式定时服务:http://sae.sina.com.cn/?m=devcenter&catId=195

php读取配置文件 php读取ini文件 操作

本文给出了php文件读取.ini配置文件 的代码
另外也可以读取.php的配置文件,本文将在后续给出

读取一个名为 config.ini 的配置文件
代码如下:

$file = 'config.ini';
if (file_exists($file))
{
	$file = file_get_contents($file);
	$config = explode("rn",$file);
	//通过换行或者 ‘,’分割
	//$config = preg_split('/([rn|,])+/', $file, -1, PREG_SPLIT_NO_EMPTY);
}
print_r($config );