当前位置: 首页 > news >正文

做电影网站为什么要数据库现在都用什么做网站

做电影网站为什么要数据库,现在都用什么做网站,Python爬取wordpress博客,wordpress 微信 抓取背景 我们希望实现全链路信息#xff0c;但是代码中一般都会异步的线程处理。 解决思路 我们可以对以前的 Runable 和 Callable 进行增强。 可以使用 ali 已经存在的实现方式。 TransmittableThreadLocal (TTL) 解决异步执行时上下文传递的问题 核心的实现思路如下#…背景 我们希望实现全链路信息但是代码中一般都会异步的线程处理。 解决思路 我们可以对以前的 Runable 和 Callable 进行增强。 可以使用 ali 已经存在的实现方式。 TransmittableThreadLocal (TTL) 解决异步执行时上下文传递的问题 核心的实现思路如下 1异步执行前把当前线程的 MDC 信息放入执行对象中。 2异步执行时把执行对象中的信息放入 MDC 等信息。 3) 异步执行后清空执行对象。 问题 Runable 和 Callable 只是接口没有额外信息所以需要进行增强。 实现方式 接口定义 package com.github.houbb.heaven.support.concurrent.context;import java.util.Map;/*** 跨线程处理类** since 0.3.0*/ public interface CrossThreadProcessor {/*** 初始化上下文* param contextMap 上下文*/void initContext(MapString, Object contextMap);/*** 执行之前* param contextMap 上下文*/void beforeExecute(MapString, Object contextMap);/*** 执行之后* param contextMap 上下文*/void afterExecute(MapString, Object contextMap);} 对可执行接口进行增强 package com.github.houbb.heaven.support.concurrent.context;import com.github.houbb.heaven.util.lang.SpiUtil;import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.concurrent.Callable;/*** 跨线程处理** 作用用来跨线程处理传递信息比如 async线程池等。** 比如在 aop 中直接处理。** pre* Object[] args point.args();* Object arg0 args[0];** // 直接转换为当前的对象* if(arg0 instanceOf Runnable) {* args[0] new CrossThreadWrapper((Runnable)arg0);* } else if(arg0 instanceOf Callable) {* args[0] new CrossThreadWrapper((Callable)arg0);* }** // 继续处理* /pre* param T 泛型* since 0.3.0*/ public class CrossThreadWrapperT implements Runnable, CallableT {private Runnable runnable;private CallableT callable;/*** 通过 spi 获取所有的实现类*/private static ListCrossThreadProcessor processorList new ArrayList();/*** 上下文*/private final MapString, Object context new HashMap();static {processorList SpiUtil.getClassImplList(CrossThreadProcessor.class);}public CrossThreadWrapper(Runnable runnable) {// 任务执行之前this.initContext();this.runnable runnable;}public CrossThreadWrapper(CallableT callable) {this.initContext();this.callable callable;}Overridepublic void run() {try {beforeExecute();this.runnable.run();} finally {afterExecute();}}Overridepublic T call() throws Exception {try {beforeExecute();return this.callable.call();} finally {afterExecute();}}/*** 初始化上下文*/protected void initContext() {for(CrossThreadProcessor processor : processorList) {processor.initContext(context);}}/*** 执行前*/protected void beforeExecute() {for(CrossThreadProcessor processor : processorList) {processor.beforeExecute(context);}}/*** 执行之后*/protected void afterExecute() {for(CrossThreadProcessor processor : processorList) {processor.afterExecute(context);}}} 用法 实现接口 我们只需要实现 CrossThreadProcessor 接口。 然后 spi 中配置服务会自动发现。 aop 可以在 spring aop 中对以前的方法执行进行增强。
http://www.hkea.cn/news/14465865/

相关文章:

  • 四川网站seo企业信息管理系统有哪些功能
  • 旅游做攻略网站莲湖微网站建设
  • 网站制作公司dedecms怎么使用wordpress里的主题
  • 网站开发自学网东莞一站式网站建设
  • 网站建设客户开发方法学习做网站
  • 北京城乡和住房建设部网站制作网站模板
  • logo设计竞标网站知名企业破产
  • 怎样找到专业做网站人免费h5页面制作软件工具
  • 辽宁省城乡和建设厅网站企业定制app
  • 网站建设ssc源码平台传奇游戏在线玩
  • 如何做枪版电影网站邯郸市人口
  • 军队营房基础建设网站可以做pos机的网站
  • 台州网站优化公司天津西青区地图
  • 做网站千篇一律wordpress设置横向菜单
  • 学院招生网站建设方案企业官网wordpress主题下载
  • 南京企业网站网站建设目标 优帮云
  • 淘宝客的网站是如何建设的网站开发商务合同
  • 购物网站用模板好不好网站 公众号 建设方案
  • php网站开发的相关技术做淘宝一样的网站
  • 西安志成网站建设公司中国十大营销策划机构
  • 莱芜做网站建设的公司wordpress更换语言
  • 网站建设新手在线文档网站源码
  • 社区教育网站开发中国最厉害的网站建设公司
  • 产品分类 网站模板采招网招标官网
  • 济南建设工程业绩公示的网站wordpress改变端口
  • 杭州 网站设计制作seo关键词优化软件怎么样
  • 网站建设设计贵吗北京市场调研公司
  • 网站搭建详细步骤秦皇岛哪里能做网站
  • 天津企业做网站免费网页设计教程视频教程
  • 西安北郊网站建设做神马网站快速排名软