在本文中,您将会了解到关于php–我可以让一段代码超时吗?的新资讯,同时我们还将为您解释php设置超时时间的相关在本文中,我们将带你探索php–我可以让一段代码超时吗?的奥秘,分析php设置超时时间的
在本文中,您将会了解到关于php – 我可以让一段代码超时吗?的新资讯,同时我们还将为您解释php设置超时时间的相关在本文中,我们将带你探索php – 我可以让一段代码超时吗?的奥秘,分析php设置超时时间的特点,并给出一些关于angularjs – 我可以让一个函数在每个控制器在角度?、apache - php可以发出请求执行代码时先执行另外一段代码么、c# – NUnit可以期待超时吗?、c# – 我可以简化这段代码吗?如果是这样的话的实用技巧。
本文目录一览:- php – 我可以让一段代码超时吗?(php设置超时时间)
- angularjs – 我可以让一个函数在每个控制器在角度?
- apache - php可以发出请求执行代码时先执行另外一段代码么
- c# – NUnit可以期待超时吗?
- c# – 我可以简化这段代码吗?如果是这样的话
php – 我可以让一段代码超时吗?(php设置超时时间)
try(timeout seconds){ }catch(){ //exception handle }timeout(){ // timeout handline }@H_301_5@编辑:我使用远程连接作为一个问题.我还有其他我需要解决的问题,比如用exec或其他类似的东西进行系统调用.
解决方法
set_time_limit()
将中止整个脚本.你仍然可以设置shutdown function.
@H_301_5@pcntl_alarm
@H_301_5@pcntl_alarm()
将在给定的时间后向您发送一个信号,这可能会中止该类当时正在进行的阻塞系统调用,这可能允许您在类提供此类方法时让该类中止其操作.但是,这可能不适用于Web服务器环境.
@H_301_5@默认超时
@H_301_5@如果类正在使用流函数,则可以设置默认超时:
@H_301_5@
ini_set('default_socket_timeout',5); stream_context_set_default(array( 'http' => array( 'timeout' => 5,),));@H_301_5@在单独的过程中执行 @H_301_5@您可以使用
pcntl_fork()
进行分叉,但这不适用于服务器环境.
@H_301_5@您还可以使用proc_open
或popen
在单独的进程中执行PHP脚本,如果运行时间过长则将其终止. (生成进程后,使用stream_select
对进程’stdout流进行空闲等待.)
@H_301_5@或者设置服务器来处理这些任务.
angularjs – 我可以让一个函数在每个控制器在角度?
<!doctype html> <html ng-app="myApp"> <head> <script src="http://code.jquery.com/jquery-1.9.1.min.js"></script> <script src="http://code.angularjs.org/1.1.2/angular.min.js"></script> <script type="text/javascript"> var myApp = angular.module('myApp',[]); myApp.factory('myService',function() { return { foo: function() { alert("I'm foo!"); } }; }); myApp.controller('MainCtrl',['$scope','myService',function($scope,myService) { $scope.callFoo = function() { myService.foo(); } }]); </script> </head> <body ng-controller="MainCtrl"> <button ng-click="callFoo()">Call foo</button> </body> </html>
如果这不是一个选项,你可以将它添加到根范围,如下所示:
<!doctype html> <html ng-app="myApp"> <head> <script src="http://code.jquery.com/jquery-1.9.1.min.js"></script> <script src="http://code.angularjs.org/1.1.2/angular.min.js"></script> <script type="text/javascript"> var myApp = angular.module('myApp',[]); myApp.run(function($rootScope) { $rootScope.globalFoo = function() { alert("I'm global foo!"); }; }); myApp.controller('MainCtrl',function($scope){ }]); </script> </head> <body ng-controller="MainCtrl"> <button ng-click="globalFoo()">Call global foo</button> </body> </html>
这样,所有的模板都可以调用globalFoo(),而不必将它传递给控制器的模板。
apache - php可以发出请求执行代码时先执行另外一段代码么
就是像java的Filter一样
在执行真正的代码前把请求拦截下来然后执行处理程序
处理程序执行完后才执行请求的路径
回复内容:
就是像java的Filter一样
在执行真正的代码前把请求拦截下来然后执行处理程序
处理程序执行完后才执行请求的路径
有两种方法可以做到:
- 使用auto_prepend_file,在php.ini中设置,例如:auto_prepend_file = "/home/linqq/libs/filter.php",当浏览器请求index.php, login.php等页面的时候,就会自动在处理index.php, login.php之前加载filter.php,这个功能出来很久了,一直养在深宫人未识,文档:http://www.php.net/manual/en/ini.core... http://qing.weibo.com/1657315521/62c8...
- 使用类似Java里面Dispatcher Servlet的bootstrap文件,所有HTTP请求都指向此文件,再由此文件来调度,PHP里主流的MVC框架都是这样的自己写个简单的MVC也可,我2006年就是这样入手写框架的,第一个版本的框架源码只有7K
具体哪种方法好,就要靠女施主结合自己的项目情况实战一下再说了
单一入口可以实现,百度搜索即可了解,很多框架都是这么做的,别的还有什么方法就不清楚了
你说的请求是HTTP请求吗?
那么这个功能就是php框架的基本功能,拦截请求,做一些事
http://segmentfault.com/search?q=php+... 在SF搜索“php 框架”可以找到很多数据
另外Symfony2中文站的工程师驻守在SF,可以考虑Symfony2 http://symfony.cn/ 作为你的开发框架
c# – NUnit可以期待超时吗?
我尝试了TimeoutAttribute和ExpectedExceptionAttribute的组合:
[Test] [Timeout(50),ExpectedException(typeof(ThreadAbortException))] public void BlockingCallShouldBlock() { this.someBlockingCall(); }
不幸的是,这不起作用,我读到的关于here的ThreadAbortException好像被NUnit本身抓住了.
有没有办法期待超时(使用NUnit)?
解决方法
Task
和
Task.Wait(int)
或
Task.Wait(TimeSpan)
.例如:
[Test] public void BlockingCallShouldBlock() { var task = Task.Run(() => SomeBlockingCall()); var completedInTime = task.Wait(50); // Also an overload available for TimeSpan Expect(completedInTime,Is.False); }
但是请注意,这将在后台线程上调用SomeBlockingCall,但对于大多数单元测试,这是一个非问题.
c# – 我可以简化这段代码吗?如果是这样的话
但我在这里添加它们的方式对我来说是错误的.
我想尽量避免重复,我可以制作一种我可以轻松修改的父命令吗?
internal class AddTimerBarCommand : ICommand { public AddTimerBarCommand(Mainviewmodel viewmodel) { _Mainviewmodel = viewmodel; } private Mainviewmodel _Mainviewmodel; public event EventHandler CanExecuteChanged; public bool CanExecute(object parameter) { return true; } public void Execute(object parameter) { _Mainviewmodel.AddTimerBar(); } } internal class RmvTimerBarCommand : ICommand { public RmvTimerBarCommand(Mainviewmodel viewmodel) { _Mainviewmodel = viewmodel; } private Mainviewmodel _Mainviewmodel; public event EventHandler CanExecuteChanged; public bool CanExecute(object parameter) { return true; } public void Execute(object parameter) { _Mainviewmodel.RmvTimerBar(); }
解决方法
如果是这样,这可能适合您:
internal abstract class TimerBarCommandBase : ICommand { public TimerBarCommandBase(Mainviewmodel viewmodel) { _Mainviewmodel = viewmodel; } protected Mainviewmodel _Mainviewmodel; public event EventHandler CanExecuteChanged; public bool CanExecute(object parameter) { return true; } public abstract void Execute(object parameter); } internal class AddTimerBarCommand : TimerBarCommandBase { public AddTimerBarCommand(Mainviewmodel viewmodel) : base(viewmodel) { } public override void Execute(object parameter) { _Mainviewmodel.AddTimerBar(); } } internal class RmvTimerBarCommand : TimerBarCommandBase { public RmvTimerBarCommand(Mainviewmodel viewmodel) : base(viewmodel) { } public override void Execute(object parameter) { _Mainviewmodel.RmvTimerBar(); } }
今天关于php – 我可以让一段代码超时吗?和php设置超时时间的讲解已经结束,谢谢您的阅读,如果想了解更多关于angularjs – 我可以让一个函数在每个控制器在角度?、apache - php可以发出请求执行代码时先执行另外一段代码么、c# – NUnit可以期待超时吗?、c# – 我可以简化这段代码吗?如果是这样的话的相关知识,请在本站搜索。
本文标签: