Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
S
service-campaign
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Nguyen Ha
service-campaign
Commits
3031556e
Commit
3031556e
authored
Aug 21, 2019
by
Nguyen Ha
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
remove cron-util dependency
parent
9be1cbc9
Changes
6
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
58 additions
and
69 deletions
+58
-69
etc/log.conf
etc/log.conf
+12
-0
log/campaign.log
log/campaign.log
+2
-0
pom.xml
pom.xml
+0
-42
src/main/java/com/viettel/campaign/config/JobConfig.java
src/main/java/com/viettel/campaign/config/JobConfig.java
+1
-6
src/main/java/com/viettel/campaign/utils/DateTimeUtil.java
src/main/java/com/viettel/campaign/utils/DateTimeUtil.java
+27
-21
src/test/java/com/viettel/econtact/ServiceCampaignApplicationTests.java
...com/viettel/econtact/ServiceCampaignApplicationTests.java
+16
-0
No files found.
etc/log.conf
0 → 100644
View file @
3031556e
log4j
.
rootLogger
=
INFO
,
R
,
A1
log4j
.
appender
.
A1
=
org
.
apache
.
log4j
.
ConsoleAppender
log4j
.
appender
.
A1
.
layout
=
org
.
apache
.
log4j
.
PatternLayout
# Print the date in ISO 8601 format
log4j
.
appender
.
A1
.
layout
.
ConversionPattern
=[%
t
] %
d
{
dd
/
MM
/
yyyy
HH
:
mm
:
ss
} %
5
p
%
c
{
1
}: (%
L
) : %
m
%
n
log4j
.
appender
.
R
=
org
.
apache
.
log4j
.
DailyRollingFileAppender
log4j
.
appender
.
R
.
DatePattern
=
'.'
yyyy
-
MM
-
dd
log4j
.
appender
.
R
.
File
=
log
/
campaign
.
log
log4j
.
appender
.
R
.
layout
=
org
.
apache
.
log4j
.
PatternLayout
log4j
.
appender
.
R
.
layout
.
ConversionPattern
=[%
t
] %
d
{
dd
/
MM
/
yyyy
HH
:
mm
:
ss
} %
5
p
%
c
{
1
}: (%
L
) : %
m
%
n
\ No newline at end of file
log/campaign.log
0 → 100644
View file @
3031556e
[main] 19/08/2019 17:50:53 INFO RedisUtil: (38) : Start connect Redis: 10.60.156.82:8011,10.60.156.82:8012,10.60.156.82:8013,10.60.156.82:8014,10.60.156.82:8015,10.60.156.82:8016
[main] 19/08/2019 17:53:34 INFO RedisUtil: (38) : Start connect Redis: 10.60.156.82:8011,10.60.156.82:8012,10.60.156.82:8013,10.60.156.82:8014,10.60.156.82:8015,10.60.156.82:8016
pom.xml
View file @
3031556e
...
...
@@ -127,11 +127,6 @@
<artifactId>
poi-ooxml
</artifactId>
<version>
3.17
</version>
</dependency>
<dependency>
<groupId>
com.cronutils
</groupId>
<artifactId>
cron-utils
</artifactId>
<version>
9.0.1
</version>
</dependency>
<dependency>
<groupId>
org.quartz-scheduler
</groupId>
<artifactId>
quartz
</artifactId>
...
...
@@ -153,45 +148,8 @@
</dependencies>
<!--<dependencyManagement>-->
<!--<dependencies>-->
<!--<dependency>-->
<!--<groupId>org.springframework.cloud</groupId>-->
<!--<artifactId>spring-cloud-dependencies</artifactId>-->
<!--<version>${spring-cloud.version}</version>-->
<!--<type>pom</type>-->
<!--<scope>import</scope>-->
<!--</dependency>-->
<!--</dependencies>-->
<!--</dependencyManagement>-->
<build>
<plugins>
<!--<plugin>-->
<!--<groupId>org.asciidoctor</groupId>-->
<!--<artifactId>asciidoctor-maven-plugin</artifactId>-->
<!--<version>1.5.3</version>-->
<!--<executions>-->
<!--<execution>-->
<!--<id>generate-docs</id>-->
<!--<phase>prepare-package</phase>-->
<!--<goals>-->
<!--<goal>process-asciidoc</goal>-->
<!--</goals>-->
<!--<configuration>-->
<!--<backend>html</backend>-->
<!--<doctype>book</doctype>-->
<!--</configuration>-->
<!--</execution>-->
<!--</executions>-->
<!--<dependencies>-->
<!--<dependency>-->
<!--<groupId>org.springframework.restdocs</groupId>-->
<!--<artifactId>spring-restdocs-asciidoctor</artifactId>-->
<!--<version>${spring-restdocs.version}</version>-->
<!--</dependency>-->
<!--</dependencies>-->
<!--</plugin>-->
<plugin>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-maven-plugin
</artifactId>
...
...
src/main/java/com/viettel/campaign/config/JobConfig.java
View file @
3031556e
package
com.viettel.campaign.config
;
//import com.viettel.campaign.job.CampaignJob;
import
com.viettel.campaign.job.CampaignJob
;
import
com.viettel.campaign.service.ApParamService
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Qualifier
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.scheduling.TaskScheduler
;
import
org.springframework.scheduling.Trigger
;
import
org.springframework.scheduling.TriggerContext
;
import
org.springframework.scheduling.annotation.EnableScheduling
;
import
org.springframework.scheduling.annotation.SchedulingConfigurer
;
import
org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler
;
import
org.springframework.scheduling.config.ScheduledTaskRegistrar
;
import
org.springframework.scheduling.support.CronTrigger
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.util.Date
;
import
java.util.concurrent.ScheduledFuture
;
...
...
src/main/java/com/viettel/campaign/utils/DateTimeUtil.java
View file @
3031556e
package
com.viettel.campaign.utils
;
import
com.cronutils.model.definition.CronDefinition
;
import
com.cronutils.model.definition.CronDefinitionBuilder
;
import
com.cronutils.model.time.ExecutionTime
;
import
com.cronutils.parser.CronParser
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.logging.log4j.util.Strings
;
import
org.joda.time.DateTime
;
import
org.joda.time.format.DateTimeFormat
;
import
org.quartz.CronExpression
;
import
java.text.ParseException
;
import
java.text.SimpleDateFormat
;
import
java.time.Duration
;
import
java.time.ZonedDateTime
;
import
java.util.Date
;
import
java.util.Optional
;
import
java.util.TimeZone
;
import
java.util.concurrent.atomic.AtomicReference
;
import
static
com
.
cronutils
.
model
.
CronType
.
QUARTZ
;
import
static
java
.
util
.
concurrent
.
TimeUnit
.
MILLISECONDS
;
import
static
java
.
util
.
concurrent
.
TimeUnit
.
NANOSECONDS
;
...
...
@@ -29,11 +20,24 @@ import static java.util.concurrent.TimeUnit.NANOSECONDS;
@Slf4j
public
final
class
DateTimeUtil
{
public
static
final
long
DAY_IN_MILLIS
=
86400000L
;
public
static
interface
DateTimeProvider
{
long
now
();
}
public
static
interface
DateTimeProvider
{
long
now
();
}
private
static
final
AtomicReference
<
DateTimeProvider
>
PROVIDER
=
new
AtomicReference
<
DateTimeProvider
>();
public
static
final
DateTimeProvider
getProvider
()
{
return
PROVIDER
.
get
();
}
public
static
final
DateTimeProvider
getProvider
()
{
return
PROVIDER
.
get
();
}
static
{
PROVIDER
.
set
(
new
DateTimeProvider
()
{
@Override
public
long
now
()
{
return
System
.
currentTimeMillis
();
}
});
PROVIDER
.
set
(
new
DateTimeProvider
()
{
@Override
public
long
now
()
{
return
System
.
currentTimeMillis
();
}
});
}
public
static
Date
currentTime
()
{
...
...
@@ -47,7 +51,8 @@ public final class DateTimeUtil {
public
static
final
Date
date
(
final
long
millis
)
{
final
int
offset
=
getTimeZoneOffset
(
millis
);
long
t
=
millis
-
((
t
=
(
millis
+
offset
)
%
DAY_IN_MILLIS
)
<
0
?
DAY_IN_MILLIS
+
t
:
t
);
t
=
t
+
(
offset
-
getTimeZoneOffset
(
t
));
return
new
Date
(
t
);
t
=
t
+
(
offset
-
getTimeZoneOffset
(
t
));
return
new
Date
(
t
);
}
public
static
int
getTimeZoneOffset
(
long
millis
)
{
...
...
@@ -74,8 +79,8 @@ public final class DateTimeUtil {
}
public
static
String
format
(
String
pattern
,
Date
date
,
String
defaultValue
)
{
if
(
date
==
null
)
return
defaultValue
;
return
format
(
pattern
,
date
.
getTime
());
if
(
date
==
null
)
return
defaultValue
;
return
format
(
pattern
,
date
.
getTime
());
}
/**
...
...
@@ -84,6 +89,7 @@ public final class DateTimeUtil {
public
static
boolean
isValid
(
final
long
millis
)
{
return
millis
>
0L
;
}
/**
*
*/
...
...
@@ -99,9 +105,9 @@ public final class DateTimeUtil {
*
*/
public
static
boolean
isRun
(
String
cron
,
Date
lastCheck
){
public
static
boolean
isRun
(
String
cron
,
Date
lastCheck
)
{
boolean
isOk
=
false
;
String
format
=
"dd-MMM-YYYY hh:mm:ss"
;
String
format
=
"dd-MMM-YYYY hh:mm:ss"
;
// String cronExpression="* * 12 ? * FRI *";
SimpleDateFormat
sdf
=
new
SimpleDateFormat
(
format
);
CronExpression
expression
=
null
;
...
...
@@ -114,7 +120,7 @@ public final class DateTimeUtil {
assert
expression
!=
null
;
Date
lastDate
=
expression
.
getNextValidTimeAfter
(
lastCheck
);
long
interval
=
lastDate
.
getTime
()
-
currentDate
.
getTime
();
if
(
interval
<=
0
)
{
if
(
interval
<=
0
)
{
isOk
=
true
;
}
...
...
src/test/java/com/viettel/econtact/ServiceCampaignApplicationTests.java
0 → 100644
View file @
3031556e
package
com.viettel.econtact
;
import
org.junit.Test
;
import
org.junit.runner.RunWith
;
import
org.springframework.boot.test.context.SpringBootTest
;
import
org.springframework.test.context.junit4.SpringRunner
;
@RunWith
(
SpringRunner
.
class
)
@SpringBootTest
public
class
ServiceCampaignApplicationTests
{
@Test
public
void
contextLoads
()
{
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment