Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
#/io/vertx/ext/mongo/MongoClientInstance
$class=io.vertx.reactivex.ext.mongo.MongoClientInstance

vertx^=/io/vertx/core/VertxInstance.vertx
config=mongoConfig.json
enable=false
Empty file.
5 changes: 5 additions & 0 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,11 @@
<artifactId>vertx-auth-oauth2</artifactId>
<version>3.5.0</version>
</dependency>
<dependency>
<groupId>io.vertx</groupId>
<artifactId>vertx-mongo-client</artifactId>
<version>3.5.0</version>
</dependency>
</dependencies>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
Expand Down
88 changes: 88 additions & 0 deletions src/main/java/in/erail/schedular/SchedulerService.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
package in.erail.schedular;

import in.erail.glue.annotation.StartService;
import io.reactivex.Observable;
import io.reactivex.Scheduler;
import io.reactivex.schedulers.Schedulers;
import java.util.concurrent.TimeUnit;

/**
*
* @author vinay
*/
public abstract class SchedulerService {

private SchedulerType mSchedularType;
private TimeUnit mTimeUnit;
private long mInterval;
private boolean mRecurring;

@StartService
void start() {

Scheduler scheduler;

switch (mSchedularType) {
case COMPUTATION:
scheduler = Schedulers.computation();
break;
case IO:
scheduler = Schedulers.io();
break;
case NEWTHREAD:
scheduler = Schedulers.newThread();
break;
case SINGLE:
scheduler = Schedulers.single();
break;
default:
scheduler = Schedulers.io();
}

if (isRecurring()) {
Observable
.interval(getInterval(), getTimeUnit(), scheduler)
.subscribe(this::performScheduledTask);
} else {
Observable
.timer(getInterval(), getTimeUnit(), scheduler)
.subscribe(this::performScheduledTask);
}
}

public void performScheduledTask(Long pId) {
}

public SchedulerType getSchedularType() {
return mSchedularType;
}

public void setSchedularType(SchedulerType pSchedularType) {
this.mSchedularType = pSchedularType;
}

public TimeUnit getTimeUnit() {
return mTimeUnit;
}

public void setTimeUnit(TimeUnit pTimeUnit) {
this.mTimeUnit = pTimeUnit;
}

public long getInterval() {
return mInterval;
}

public void setInterval(long pInterval) {
this.mInterval = pInterval;
}

public boolean isRecurring() {
return mRecurring;
}

public void setRecurring(boolean pRecurring) {
this.mRecurring = pRecurring;
}

}
12 changes: 12 additions & 0 deletions src/main/java/in/erail/schedular/SchedulerType.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package in.erail.schedular;

/**
*
* @author vinay
*/
public enum SchedulerType {
COMPUTATION,
IO,
NEWTHREAD,
SINGLE;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
package io.vertx.reactivex.ext.mongo;

import in.erail.glue.annotation.StartService;
import io.vertx.core.json.JsonObject;
import io.vertx.reactivex.core.Vertx;

/**
*
* @author vinay
*/
public class MongoClientInstance {

private MongoClient mMongoClient;
private Vertx mVertx;
private JsonObject mConfig;
private boolean mEnable;

@StartService
public void start() {
if (isEnable()) {
mMongoClient = MongoClient.createShared(getVertx(), getConfig());
}
}

public MongoClient getMongoClient() {
return mMongoClient;
}

public void setMongoClient(MongoClient pMongoClient) {
this.mMongoClient = pMongoClient;
}

public Vertx getVertx() {
return mVertx;
}

public void setVertx(Vertx pVertx) {
this.mVertx = pVertx;
}

public JsonObject getConfig() {
return mConfig;
}

public void setConfig(JsonObject pConfig) {
this.mConfig = pConfig;
}

public boolean isEnable() {
return mEnable;
}

public void setEnable(boolean pEnable) {
this.mEnable = pEnable;
}

}