removed NODE_APP_INSTANCE 0 dependency

This commit is contained in:
Benjamin Wilson
2024-09-09 20:18:37 -04:00
parent fb8715c23d
commit 9db0afd9df
7 changed files with 31 additions and 26 deletions
+22
View File
@@ -0,0 +1,22 @@
module.exports = {
apps: [
// Master instance
{
name: 'master',
script: './dist/main.js',
instances: 1,
env: {
MASTER: 'true',
},
},
// Worker instances
{
name: 'workers',
script: './dist/main.js',
instances: 31,
env: {
MASTER: 'false',
},
},
],
};
-3
View File
@@ -6,9 +6,6 @@ export class RpcBlockEntity {
@PrimaryColumn()
blockHeight: number;
@Column({ nullable: true })
lockedBy?: string;
@Column({ nullable: true })
data?: string;
}
-4
View File
@@ -18,10 +18,6 @@ export class RpcBlockService {
});
}
public lockBlock(blockHeight: number, process: string) {
return this.rpcBlockRepository.save({ blockHeight, data: null, lockedBy: process });
}
public saveBlock(blockHeight: number, data: string) {
return this.rpcBlockRepository.update(blockHeight, { data })
}
+1 -1
View File
@@ -22,7 +22,7 @@ export class AppService implements OnModuleInit {
}
async onModuleInit() {
if (process.env.NODE_APP_INSTANCE == null || process.env.NODE_APP_INSTANCE == '0') {
if (process.env.MASTER == 'true') {
setInterval(async () => {
await this.deleteOldStatistics();
+1 -11
View File
@@ -99,21 +99,11 @@ export class BitcoinRpcService implements OnModuleInit {
const completeBlock = block?.data != null;
// If the block has already been loaded, and the same instance is fetching the template again, we just need to refresh it.
if (completeBlock && block.lockedBy == process.env.NODE_APP_INSTANCE) {
if (completeBlock && process.env.MASTER == 'true') {
result = await this.loadBlockTemplate(blockHeight);
}
else if (completeBlock) {
return Promise.resolve(JSON.parse(block.data));
} else if (!completeBlock) {
if (process.env.NODE_APP_INSTANCE != null) {
// There is a unique constraint on the block height so if another process tries to lock, it'll throw
try {
await this.rpcBlockService.lockBlock(blockHeight, process.env.NODE_APP_INSTANCE);
} catch (e) {
result = await this.waitForBlock(blockHeight);
}
}
result = await this.loadBlockTemplate(blockHeight);
}else {
//wait for block
result = await this.waitForBlock(blockHeight);
+5 -5
View File
@@ -34,7 +34,7 @@ export class DiscordService implements OnModuleInit {
constructor(private readonly configService: ConfigService) {
if (process.env.NODE_APP_INSTANCE == null || process.env.NODE_APP_INSTANCE == '0') {
if (process.env.MASTER == 'true') {
this.token = this.configService.get('DISCORD_BOT_TOKEN');
this.clientId = this.configService.get('DISCORD_BOT_CLIENTID');
this.guildId = this.configService.get('DISCORD_BOT_GUILD_ID');
@@ -61,7 +61,7 @@ export class DiscordService implements OnModuleInit {
async onModuleInit(): Promise<void> {
if (process.env.NODE_APP_INSTANCE == null || process.env.NODE_APP_INSTANCE == '0') {
if (process.env.MASTER == 'true') {
if (this.bot == null) {
return;
}
@@ -93,7 +93,7 @@ export class DiscordService implements OnModuleInit {
}
private async registerCommands() {
if (process.env.NODE_APP_INSTANCE == null || process.env.NODE_APP_INSTANCE == '0') {
if (process.env.MASTER == 'true') {
const rest = new REST().setToken(this.token);
try {
console.log(`Started refreshing ${commands.length} application (/) commands.`);
@@ -113,7 +113,7 @@ export class DiscordService implements OnModuleInit {
}
public async notifyRestarted() {
if (process.env.NODE_APP_INSTANCE == null || process.env.NODE_APP_INSTANCE == '0') {
if (process.env.MASTER == 'true') {
if (this.bot == null) {
return;
}
@@ -125,7 +125,7 @@ export class DiscordService implements OnModuleInit {
}
public async notifySubscribersBlockFound(height: number, block: Block, message: string) {
if (process.env.NODE_APP_INSTANCE == null || process.env.NODE_APP_INSTANCE == '0') {
if (process.env.MASTER == 'true') {
if (this.bot == null) {
return;
}
+1 -1
View File
@@ -30,7 +30,7 @@ export class StratumV1Service implements OnModuleInit {
async onModuleInit(): Promise<void> {
if (process.env.NODE_APP_INSTANCE == '0') {
if (process.env.MASTER == 'true') {
await this.clientService.deleteAll();
}
setTimeout(() => {