public abstract class AtomicBatchService implements Serializable {
private static final long serialVersionUID = 2931723128262800986L;
private static final Logger logger = LoggerFactory.getLogger(AtomicBatchService.class);
private long LAST_BATCH_INSERT_TIME = System.currentTimeMillis();
public AtomicReference
批量定时器:
public class AtomicTimerTask extends TimerTask {
private AtomicBatchService atomicBatchService;
public AtomicTimerTask(AtomicBatchService atomicBatchService) {
this.atomicBatchService = atomicBatchService;
}
@Override
public void run() {
System.out.println(String.format("批量任务定时器开始处理:%s|%sms", this.atomicBatchService.getClass().getName(), this.atomicBatchService.getConfig().getPeriod()));
if (!atomicBatchService.isExcuteTask()) {
System.out.println("批量任务执行正常,无需执行定时器任务!");
return;
}
if (atomicBatchService.out == null) {// 不需要再执行输出下一环节操作
atomicBatchService.excute();
} else {
atomicBatchService.out(atomicBatchService.out, atomicBatchService.excute());
}
}
应用:(继承)
public class ChaifenService extends AtomicBatchService, Collector> {
private static HighLevelRestDao highLevelRestDao = new HighLevelRestDaoImpl();
private static String ES_INDEX_NAME = "chaifen_vehicle";
private static String ES_DOC_TYPE = "chaifen_vehicle";
@Override
public List batchOperation(List dataList) {
List liRequestList = Lists.transform(dataList, new Function() {
@Nullable
@Override
public String apply(@Nullable JSONObject jsonObject) {
return jsonObject.getString("line_require_id");
}
});
if (ListUtil.isEmpty(liRequestList)){
return dataList;
}
try {
QueryCondition queryCondition = new QueryCondition(ES_INDEX_NAME,ES_DOC_TYPE);
queryCondition.setField("line_require_id",liRequestList);
highLevelRestDao.doSyncDelete(queryCondition);
}catch (Exception e){
e.printStackTrace();
}
return dataList;
}
@Override
public void out(Collector stringCollector, List resultList) {
if (ListUtil.isEmpty(resultList)) {
return;
}
for (JSONObject dataJson : resultList) {
out.collect(dataJson.toJSONString());
}
}
@Override
public Context getConfig() {
return new Context(300, 3 * 1000, 5 * 60 * 1000);
}
chaifenService.setOut(out);
List list = chaifenService.doBatch(json.getString("esKey"), json);
if (ListUtil.isEmpty(list)) {
return;
}
for (JSONObject result : list) {
out.collect(result.toJSONString());
}
以教员和课程为例介绍一对多关联关系,在这里认为一个教员可以叫多门课程,而一门课程只有1个教员教,这种关系在实际中不太常见,通过教员和课程是多对多的关系。
示例数据:
地址表:
CREATE TABLE ADDRESSES
(
ADDR_ID INT(11) NOT NULL AUTO_INCREMENT,
STREET VAR
In this lesson we used the key "UITextAttributeTextColor" to change the color of the UINavigationBar appearance to white. This prompts a warning "first deprecated in iOS 7.0."
Ins
质数也叫素数,是只能被1和它本身整除的正整数,最小的质数是2,目前发现的最大的质数是p=2^57885161-1【注1】。
判断一个数是质数的最简单的方法如下:
def isPrime1(n):
for i in range(2, n):
if n % i == 0:
return False
return True
但是在上面的方法中有一些冗余的计算,所以
hbase(hadoop)是用java编写的,有些语言(例如python)能够对它提供良好的支持,但也有很多语言使用起来并不是那么方便,比如c#只能通过thrift访问。Rest就能很好的解决这个问题。Hbase的org.apache.hadoop.hbase.rest包提供了rest接口,它内嵌了jetty作为servlet容器。
启动命令:./bin/hbase rest s
下面这段sql本来目的是想更新条件下的数据,可是这段sql却更新了整个表的数据。sql如下:
UPDATE tops_visa.visa_order
SET op_audit_abort_pass_date = now()
FROM
tops_visa.visa_order as t1
INNER JOIN tops_visa.visa_visitor as t2
ON t1.