
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; |
|||
|
|||
import javax.sip.DialogState; |
|||
|
|||
public interface ISubscribeTask extends Runnable{ |
|||
void stop(); |
|||
|
|||
DialogState getDialogState(); |
|||
} |
|||
|
Loading…
Reference in new issue