Browse Source
* move updateTaskState into try/catch block in case of exception * fix NPE * using conf.getInt instead of getString * for AbstractZKClient, remove the log, for it will print the same log message in createZNodePath. for AlertDao, correct the spelling. * duplicate * refactor getTaskWorkerGroupId * add friendly log * update hearbeat thread num = 1 * fix the bug when worker execute task using queue. and remove checking Tenant user anymore in TaskScheduleThread * 1. move verifyTaskInstanceIsNull after taskInstance 2. keep verifyTenantIsNull/verifyTaskInstanceIsNull clean and readable * fix the message * delete before check to avoid KeeperException$NoNodeException * fix the message * check processInstance state before delete tenant * check processInstance state before delete worker group * refactor * merge api constants into common constatns * update the resource perm * update the dataSource perm * fix CheckUtils.checkUserParams method * update AlertGroupService, extends from BaseService, remove duplicate methods * refactor * modify method name * add hasProjectAndPerm method * using checkProject instead of getResultStatus * delete checkAuth method, using hasProjectAndPerm instead. * correct spelling * add transactional for deleteWorkerGroupById * add Transactional for deleteProcessInstanceById method * change sqlSessionTemplate singleton * change sqlSessionTemplate singleton and reformat code * fix unsuitable error message * update shutdownhook methods * fix worker log bug * fix api server debug mode bug * upgrade zk version * delete this line ,for zkClient.close() will do the whole thing * fix master server shutdown error * degrade zk version and add FourLetterWordMain classpull/2/head
Tboy
5 years ago
committed by
qiaozhanwei
4 changed files with 98 additions and 4 deletions
@ -0,0 +1,96 @@
|
||||
/* |
||||
* Licensed to the Apache Software Foundation (ASF) under one or more |
||||
* contributor license agreements. See the NOTICE file distributed with |
||||
* this work for additional information regarding copyright ownership. |
||||
* The ASF licenses this file to You under the Apache License, Version 2.0 |
||||
* (the "License"); you may not use this file except in compliance with |
||||
* the License. You may obtain a copy of the License at |
||||
* |
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
package org.apache.dolphinscheduler.api.utils; |
||||
|
||||
|
||||
import org.slf4j.Logger; |
||||
import org.slf4j.LoggerFactory; |
||||
|
||||
import java.io.BufferedReader; |
||||
import java.io.IOException; |
||||
import java.io.InputStreamReader; |
||||
import java.io.OutputStream; |
||||
import java.net.InetAddress; |
||||
import java.net.InetSocketAddress; |
||||
import java.net.Socket; |
||||
import java.net.SocketTimeoutException; |
||||
|
||||
|
||||
public class FourLetterWordMain { |
||||
|
||||
private static final int DEFAULT_SOCKET_TIMEOUT = 5000; |
||||
protected static final Logger LOG = LoggerFactory.getLogger(FourLetterWordMain.class); |
||||
|
||||
/** |
||||
* Send the 4letterword |
||||
* @param host the destination host |
||||
* @param port the destination port |
||||
* @param cmd the 4letterword |
||||
* @return server response |
||||
* @throws java.io.IOException |
||||
*/ |
||||
public static String send4LetterWord(String host, int port, String cmd) |
||||
throws IOException |
||||
{ |
||||
return send4LetterWord(host, port, cmd, DEFAULT_SOCKET_TIMEOUT); |
||||
} |
||||
/** |
||||
* Send the 4letterword |
||||
* @param host the destination host |
||||
* @param port the destination port |
||||
* @param cmd the 4letterword |
||||
* @param timeout in milliseconds, maximum time to wait while connecting/reading data |
||||
* @return server response |
||||
* @throws java.io.IOException |
||||
*/ |
||||
public static String send4LetterWord(String host, int port, String cmd, int timeout) |
||||
throws IOException |
||||
{ |
||||
LOG.info("connecting to " + host + " " + port); |
||||
Socket sock = new Socket(); |
||||
InetSocketAddress hostaddress= host != null ? new InetSocketAddress(host, port) : |
||||
new InetSocketAddress(InetAddress.getByName(null), port); |
||||
BufferedReader reader = null; |
||||
try { |
||||
sock.setSoTimeout(timeout); |
||||
sock.connect(hostaddress, timeout); |
||||
OutputStream outstream = sock.getOutputStream(); |
||||
outstream.write(cmd.getBytes()); |
||||
outstream.flush(); |
||||
// this replicates NC - close the output stream before reading
|
||||
sock.shutdownOutput(); |
||||
|
||||
reader = |
||||
new BufferedReader( |
||||
new InputStreamReader(sock.getInputStream())); |
||||
StringBuilder sb = new StringBuilder(); |
||||
String line; |
||||
while((line = reader.readLine()) != null) { |
||||
sb.append(line + "\n"); |
||||
} |
||||
return sb.toString(); |
||||
} catch (SocketTimeoutException e) { |
||||
throw new IOException("Exception while executing four letter word: " + cmd, e); |
||||
} finally { |
||||
sock.close(); |
||||
if (reader != null) { |
||||
reader.close(); |
||||
} |
||||
} |
||||
} |
||||
} |
Loading…
Reference in new issue