mk1990
3 years ago
committed by
GitHub
26 changed files with 543 additions and 246 deletions
@ -0,0 +1,91 @@ |
|||||
|
#!/bin/bash |
||||
|
|
||||
|
###################################################### |
||||
|
# Copyright 2019 Pham Ngoc Hoai |
||||
|
# |
||||
|
# Licensed 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. |
||||
|
# |
||||
|
# Repo: https://github.com/tyrion9/spring-boot-startup-script |
||||
|
# |
||||
|
######### PARAM ###################################### |
||||
|
|
||||
|
JAVA_OPT=-Xmx1024m |
||||
|
JARFILE=`ls -1r *.jar 2>/dev/null | head -n 1` |
||||
|
PID_FILE=pid.file |
||||
|
RUNNING=N |
||||
|
PWD=`pwd` |
||||
|
|
||||
|
######### DO NOT MODIFY ######## |
||||
|
|
||||
|
if [ -f $PID_FILE ]; then |
||||
|
PID=`cat $PID_FILE` |
||||
|
if [ ! -z "$PID" ] && kill -0 $PID 2>/dev/null; then |
||||
|
RUNNING=Y |
||||
|
fi |
||||
|
fi |
||||
|
|
||||
|
start() |
||||
|
{ |
||||
|
if [ $RUNNING == "Y" ]; then |
||||
|
echo "Application already started" |
||||
|
else |
||||
|
if [ -z "$JARFILE" ] |
||||
|
then |
||||
|
echo "ERROR: jar file not found" |
||||
|
else |
||||
|
nohup java $JAVA_OPT -Djava.security.egd=file:/dev/./urandom -jar $PWD/$JARFILE > nohup.out 2>&1 & |
||||
|
echo $! > $PID_FILE |
||||
|
echo "Application $JARFILE starting..." |
||||
|
tail -f nohup.out |
||||
|
fi |
||||
|
fi |
||||
|
} |
||||
|
|
||||
|
stop() |
||||
|
{ |
||||
|
if [ $RUNNING == "Y" ]; then |
||||
|
kill -9 $PID |
||||
|
rm -f $PID_FILE |
||||
|
echo "Application stopped" |
||||
|
else |
||||
|
echo "Application not running" |
||||
|
fi |
||||
|
} |
||||
|
|
||||
|
restart() |
||||
|
{ |
||||
|
stop |
||||
|
start |
||||
|
} |
||||
|
|
||||
|
case "$1" in |
||||
|
|
||||
|
'start') |
||||
|
start |
||||
|
;; |
||||
|
|
||||
|
'stop') |
||||
|
stop |
||||
|
;; |
||||
|
|
||||
|
'restart') |
||||
|
restart |
||||
|
;; |
||||
|
|
||||
|
*) |
||||
|
echo "Usage: $0 { start | stop | restart }" |
||||
|
exit 1 |
||||
|
;; |
||||
|
esac |
||||
|
exit 0 |
||||
|
|
@ -1,50 +0,0 @@ |
|||||
package com.genersoft.iot.vmp.gb28181.event.subscribe; |
|
||||
|
|
||||
import com.genersoft.iot.vmp.common.VideoManagerConstants; |
|
||||
import com.genersoft.iot.vmp.conf.DynamicTask; |
|
||||
import com.genersoft.iot.vmp.conf.RedisKeyExpirationEventMessageListener; |
|
||||
import com.genersoft.iot.vmp.conf.UserSetting; |
|
||||
import org.slf4j.Logger; |
|
||||
import org.slf4j.LoggerFactory; |
|
||||
import org.springframework.beans.factory.annotation.Autowired; |
|
||||
import org.springframework.data.redis.connection.Message; |
|
||||
import org.springframework.data.redis.listener.RedisMessageListenerContainer; |
|
||||
import org.springframework.stereotype.Component; |
|
||||
|
|
||||
/** |
|
||||
* 平台订阅到期事件 |
|
||||
*/ |
|
||||
@Component |
|
||||
public class SubscribeListenerForPlatform extends RedisKeyExpirationEventMessageListener { |
|
||||
|
|
||||
private Logger logger = LoggerFactory.getLogger(SubscribeListenerForPlatform.class); |
|
||||
|
|
||||
@Autowired |
|
||||
private UserSetting userSetting; |
|
||||
|
|
||||
@Autowired |
|
||||
private DynamicTask dynamicTask; |
|
||||
|
|
||||
public SubscribeListenerForPlatform(RedisMessageListenerContainer listenerContainer, UserSetting userSetting) { |
|
||||
super(listenerContainer, userSetting); |
|
||||
} |
|
||||
|
|
||||
|
|
||||
/** |
|
||||
* 监听失效的key |
|
||||
* @param message |
|
||||
* @param pattern |
|
||||
*/ |
|
||||
@Override |
|
||||
public void onMessage(Message message, byte[] pattern) { |
|
||||
// 获取失效的key
|
|
||||
String expiredKey = message.toString(); |
|
||||
logger.debug(expiredKey); |
|
||||
// 订阅到期
|
|
||||
String PLATFORM_KEEPLIVEKEY_PREFIX = VideoManagerConstants.SIP_SUBSCRIBE_PREFIX + userSetting.getServerId() + "_"; |
|
||||
if (expiredKey.startsWith(PLATFORM_KEEPLIVEKEY_PREFIX)) { |
|
||||
// 取消定时任务
|
|
||||
dynamicTask.stop(expiredKey); |
|
||||
} |
|
||||
} |
|
||||
} |
|
@ -1,5 +1,9 @@ |
|||||
package com.genersoft.iot.vmp.gb28181.task; |
package com.genersoft.iot.vmp.gb28181.task; |
||||
|
|
||||
|
import javax.sip.DialogState; |
||||
|
|
||||
public interface ISubscribeTask extends Runnable{ |
public interface ISubscribeTask extends Runnable{ |
||||
void stop(); |
void stop(); |
||||
|
|
||||
|
DialogState getDialogState(); |
||||
} |
} |
||||
|
Loading…
Reference in new issue