主要工作是更加的stable
-
慢SQL优化,解决DB波动时出现调用超时的情况。现在已经优化掉一个很大的全表扫描同时增加了tddl数据源做中间层,等封网后发布
-
另一种hsf调用的配置方式,主要为了解决groovy建立和维护与流程分离以及通过implant调用hsf会出现找不到地址的问题
import scala.collection.JavaConversions | |
object Helper { | |
implicit def scalaMap_T_S_A_2JavaMap_T_S_O(scalaMap: Map[String, Any]) = { | |
JavaConversions.mapAsJavaMap(scalaMap).asInstanceOf[java.util.Map[String, Object]] | |
} | |
implicit def javaMap_T_S_O_2scalaMap_T_S_A(javaMap: java.util.Map[String, Object]) = { | |
JavaConversions.mapAsScalaMap(javaMap.asInstanceOf[java.util.Map[String, Any]]).toMap | |
} |
package com.tmall.pokemon.pikachu.j.model; | |
import com.tmall.pokemon.pikachu.core.model.StateLike; | |
import com.tmall.pokemon.pikachu.helper.Helper; | |
import scala.Option; | |
import scala.Tuple2; | |
import scala.xml.Node; | |
import java.util.Map; |
private void run(KongurContext context, ActivityNode currentNode, Long processInstanceId, String nodeType, | |
PvmExecution executor) throws SchedulerException, BizException { | |
// 如果有流程实例 先更新流程实例 再去做节点内容 | |
// 先select再update 避免mysql中的死锁 | |
if (processInstanceId != null) { | |
Activity activity = activityDAO.selectFailedByProcessInstanceIdAndActivityName(processInstanceId, | |
currentNode.getName()); | |
if (activity == null) { | |
if (nodeType.endsWith(NodeExecutor.NOTIFY_EXECUTOR)) { | |
// 这种情况允许继续执行 去重在节点的notify执行器中做 |
/** | |
* Project: pmc-api | |
* | |
* File Created at Apr 1, 2009 | |
* $Id$ | |
* | |
* Copyright 2009 Taobao.com Corporation Limited. | |
* All rights reserved. | |
* | |
* This software is the confidential and proprietary information of |
现在三方集成的长连接主动推送订阅使用经过简单改造的TOP长连接推送SDK,在使用上有一些和TOP长连接推送区别的地方需要特殊注意,在下面的示例代码中都有体现
Configuration
子类来初始化长连接: JushitaConfiguration
,该配置类有两点需要注意
public abstract List<String> getTopicInfo();
需要实现,通过该方法返回需要订阅的topic信息。该方法在每次连接发起前都会被调用以重新计算topic信息,请在这个方法里携带最新的带offset的topic信息require 'date' | |
author = "Anson" | |
email = "anson0370@gmail.com" | |
date = Date.new(2012, 7, 30) | |
a = %w{ | |
. . . . . . | |
. o o o . . | |
o . . . o . |