handler

Ansible Notify与Handler组合

筅森魡賤 提交于 2020-04-03 19:35:08
Notify所在的Task状态为Changed时触发Handler Task, Handler与普通的Task没有任何区别。 示例 修改Apache配置后,重启Apache服务 --- - name: stup web server hosts: dev tasks:- name: copy apache index.html copy: src: index.html dest: /var/www/html/index.html notify: - restart httpd  # 调用handler,只有在该Task状态为Change时才会触发Handler。 handlers: - name: restart httpd service: name: httpd enabled: true state: restarted 来源: https://www.cnblogs.com/vincenshen/p/12627784.html

usr/include/dispatch - dispatch_source

孤人 提交于 2020-04-03 05:32:35
博文一部分摘自: Parse分析,以下简称博文1 (LeanCloud工程师针对Parse使用GCD的分析) 博文一部分摘自: GCD入门,以下简称博文2 建议先了解一下: BSD基础知识 在 Dispatch/source.h 中是这样描述Dispatch Source#### The dispatch framework provides a suite of Interfaces for monitoring low-level system objects (file descriptions , Mach Ports , signals , VFS nodes , etc.) for activity and automatically submitting event handler blocks to dispatch queues when such activity occurs. The suite of interfaces is known as the Dispatch Source API abstract: Dispatch Source are used to automatically submit event handler blocks to dispatch queues in response to external events.

GCD 定时器 dispatch_source_set_timer

 ̄綄美尐妖づ 提交于 2020-04-03 05:32:17
NSTimeInterval period = 1.0; dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0); _defaultTimer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, queue); dispatch_source_set_timer(_defaultTimer, dispatch_walltime(NULL, 0), period * NSEC_PER_SEC, 0); __block NSInteger duration = defaultDuration; dispatch_source_set_event_handler(_defaultTimer, ^{ dispatch_async(dispatch_get_main_queue(), ^{ if(duration==0) { dispatch_source_cancel(_defaultTimer); [self remove]; } duration--; }); }); dispatch_source_set_cancel_handler(_defaultTimer, ^{ dispatch_release

透过现象看本质——Nginx模块

…衆ロ難τιáo~ 提交于 2020-04-02 05:22:43
透过现象看本质——Nginx模块 前言 ​ 上篇文章主要讲述了有关Nginx的主配置文件,为什么需要非常关注Nginx的主配置文件呢?这是因为它是我们与nginx的核心,这里的核心不是说nginx的内核部分,而是人机交互的核心,除非基于nginx做二次开发,例如开发第三方模块,一般我们只需要使用nginx实现我们的业务需求。无论是web网站、负载均衡还是反向代理,都需要对其主配置文件熟悉,这样才能玩好其优化。 ​ 本文就接着来讲述有关nginx模块的相关内容。 Nginx核心工作者——模块 ​ Nginx由内核和各种模块组成。Nginx本身的工作实际很少,当它响应一个HTTP请求时,是通过配置文件将请求映射到一个location block,根据定位中所配置的各个指令启动不同的模块完成工作,所以这就是为什么说模块是Nginx的核心工作者。 ​ 当然,Nginx的核心部分也不可以忽略,因为它实现了底层的通讯协议,为其他模块和Nginx进程构建了基本的运行时环境,且构建了其他模块之间的协作的基础。 ​ 一般一个location中的指令会涉及一个handler模块和多个filter模块(多个location可以复用同一个模块)。handler模块负责处理请求,完成响应内容的生成,而filter模块对响应内容进行处理。用户根据自己的需要所二次开发的模块都是第三方模块

IIS 6 下配置以 FastCGI 跑 PHP

夙愿已清 提交于 2020-04-01 14:31:25
环境: 操作系统:Windows 2003 Server SP2 PHP 版本:php-5.2.6-Win32 1.下载 FastCGI For IIS6 http://www.iis.net/download/fastcgi 下载之后,双击运行进行安装。 安装后在 C:\WINDOWS\system32\inetsrv 目录下产生了五个文件。如下图: fcgiext.dll – fastcgi处理程序 fcgiext.ini – 配置文件 fcgiconfig.js – FastCGI的控制脚本 同时在 IIS 的 “Web 服务扩展”里多了 FastCGI Handler。 2.下载 PHP5.2.14 Windows 版 http://www.php.net/downloads.php 下载 .zip 格式的版本,下载后解压至 c:\PHP 目录,并给 IIS 启动帐户组或用户赋予读取和运行权限。如下图: 你可以根据自己的意愿解压到别的目录。 3. 注册 PHP 到 FastCGI 打开 C:\WINDOWS\system32\inetsrv\fcgiext.ini 文件。 ; This is the configuration file for the FastCGI handler for IIS 6.0. ; The FastCGI handler will look

watch 中 deep与immediate 区别以及作用

拜拜、爱过 提交于 2020-04-01 11:25:15
deep,默认值是 false,代表是否深度监听。 immediate:true代表如果在 wacth 里声明了之后,就会立即先去执行里面的handler方法,如果为 false就跟我们以前的效果一样,不会在绑定的时候就执行。 immediate:true代表如果在 wacth 里声明了之后,就会立即先去执行里面的handler方法,如果为 false就跟我们以前的效果一样,不会在绑定的时候就执行。 来源: https://www.cnblogs.com/eAndyLau/p/12610982.html

设计模式之责任链模式(Chain of Responsibility)详解及代码示例

浪尽此生 提交于 2020-04-01 05:47:13
一、责任链模式的定义与特点   责任链(Chain of Responsibility)模式的定义:责任链模式也叫职责链模式,为了避免请求发送者与多个请求处理者耦合在一起,将所有请求的处理者通过前一对象记住其下一个对象的引用而连成一条链;当有请求发生时,可将请求沿着这条链传递,直到有对象处理它为止。   在责任链模式中,客户只需要将请求发送到责任链上即可,无须关心请求的处理细节和请求的传递过程,所以责任链将请求的发送者和请求的处理者解耦了。 二、责任链模式优缺点   责任链模式是一种对象行为型模式,其主要优点如下: 降低了对象之间的耦合度。该模式使得一个对象无须知道到底是哪一个对象处理其请求以及链的结构,发送者和接收者也无须拥有对方的明确信息。 增强了系统的可扩展性。可以根据需要增加新的请求处理类,满足开闭原则。 增强了给对象指派职责的灵活性。当工作流程发生变化,可以动态地改变链内的成员或者调动它们的次序,也可动态地新增或者删除责任。 责任链简化了对象之间的连接。每个对象只需保持一个指向其后继者的引用,不需保持其他所有处理者的引用,这避免了使用众多的 if 或者 if···else 语句。 责任分担。每个类只需要处理自己该处理的工作,不该处理的传递给下一个对象完成,明确各类的责任范围,符合类的单一职责原则。   其主要缺点如下: 不能保证每个请求一定被处理

SpringMVC面试题

我与影子孤独终老i 提交于 2020-03-31 20:08:16
1、简单介绍下你对springMVC的理解? Spring MVC是一个基于Java的实现了MVC设计模式的请求驱动类型的轻量级Web框架,通过把Model,View,Controller分离,将web层进行职责解耦,把复杂的web应用分成逻辑清晰的几部分,简化开发,减少出错,方便组内开发人员之间的配合。 2、SpringMVC的流程? 下图是springMVC的原理示意图: SpringMVC工作流程概述: 1、客户端向web服务器(如tomcat)发送一个http请求,web服务器对http请求进行解析,解析后的URL地址如果匹配了DispatcherServlet的映射路径(通过web.xml中的servlet-mapping配置),web容器就将请求交给DispatcherServlet处理。 2、DispatcherServlet接收到这个请求后,再对URL进行解析,得到请求资源标识符(URI)。然后调用相应方法得到的HandlerMapping对象,再根据URI,调用这个对象的相应方法获得Handler对象以及它对应的拦截器。(在这里只是获得了Handler对象,并不会操作它,在SpringMVC中,是通过HandlerAdapter对Handler进行调用、控制的) 3、DispatcherServlet根据得到的Handler对象

Android中后台线程如何与UI线程交互

半世苍凉 提交于 2020-03-31 06:43:35
我想关于这个话题已经有很多前辈讨论过了。今天算是一次学习总结吧。 在android的设计思想中,为了确保用户顺滑的操作体验。一些耗时的任务不能够在UI线程中运行,像访问网络就属于这类任务。因此我们必须要重新开启一个后台线程运行这些任务。然而,往往这些任务最终又会直接或者间接的需要访问和控制UI控件。例如访问网络获取数据,然后需要将这些数据处理显示出来。就出现了上面所说的情况。原本这是在正常不过的现象了,但是android规定除了UI线程外,其他线程都不可以对那些UI控件访问和操控。为了解决这个问题,于是就引出了我们今天的话题。Android中后台线程如何与UI线程交互。 据我所知android提供了以下几种方法,用于实现后台线程与UI线程的交互。 1、handler 2、Activity.runOnUIThread(Runnable) 3、View.Post(Runnable) 4、View.PostDelayed(Runnabe,long) 5、AsyncTask 方法一:handler handler是android中专门用来在线程之间传递信息类的工具。 要讲明handler的用法非常简单,但是我在这里会少许深入的讲一下handler的运行机制。 为了能够让handler在线程间传递消息,我们还需要用到几个类。他们是looper,messageQueue,message。

Android学习记录:线程

北慕城南 提交于 2020-03-31 02:16:20
在Java中,线程的建立方法如下。 新建一个类,接口Runnable,重载 run方法 import javax.swing.JTextField; public class test implements Runnable{ @Override public void run() { } } 在需要开始这个线程的地方,这样创建线程 private Thread th; test te = new test(); th = new Thread(te); th.start(); Java中调用线程的时候,可以直接访问JFrame上的组件,并更改其值,但是在安卓中,如果一个子线程涉及到UI更新,Android主线的线程是不安全的。更新UI只能在主线程中更新。 所以要把Message通过handler来send,然后利用callback来接收。 新建类,接口Callback 重载的handleMessage中就是对从子线程中传入的Message做处理。 import android.os.Handler.Callback; import android.os.Message; import android.widget.TextView; public class CB implements Callback{ private TextView tv; public TextView