Rob Colbert
1 year ago
23 changed files with 304 additions and 82 deletions
@ -0,0 +1,9 @@ |
|||
mixin renderNewsroomFeedEntryListItem (entry) |
|||
.uk-text-bold |
|||
a(href= entry.link, target="_blank").uk-link-reset= entry.title |
|||
.uk-text-small |
|||
div(uk-grid).uk-grid-small |
|||
.uk-width-expand |
|||
a(href= entry.feed.link, target="_blank").uk-link-reset= entry.feed.title |
|||
.uk-width-auto |
|||
div= moment(entry.published).fromNow() |
@ -0,0 +1,52 @@ |
|||
// newsroom/job/update-feed.js
|
|||
// Copyright (C) 2022 DTP Technologies, LLC
|
|||
// License: Apache-2.0
|
|||
|
|||
'use strict'; |
|||
|
|||
const path = require('path'); |
|||
|
|||
const { SiteWorkerProcess } = require(path.join(__dirname, '..', '..', '..', '..', 'lib', 'site-lib')); |
|||
|
|||
class UpdateFeedJob extends SiteWorkerProcess { |
|||
|
|||
static get COMPONENT ( ) { |
|||
return { |
|||
name: 'newsroomUpdateFeedJob', |
|||
slug: 'newsroom-update-feed-job', |
|||
}; |
|||
} |
|||
|
|||
constructor (worker) { |
|||
super(worker, UpdateFeedJob.COMPONENT); |
|||
} |
|||
|
|||
async start ( ) { |
|||
await super.start(); |
|||
|
|||
this.queue = await this.getJobQueue('newsroom', this.dtp.config.jobQueues.newsroom); |
|||
|
|||
this.log.info('registering job processor', { queue: this.queue.name, name: 'update-feed' }); |
|||
this.queue.process('update-feed', this.processUpdateFeed.bind(this)); |
|||
} |
|||
|
|||
async stop ( ) { |
|||
await super.stop(); |
|||
} |
|||
|
|||
async processUpdateFeed (job) { |
|||
const { feed: feedService } = this.dtp.services; |
|||
const { feedId } = job.data; |
|||
this.log.info('newsroom feed update job received', { id: job.id, feedId }); |
|||
|
|||
try { |
|||
const feed = await feedService.getById(feedId); |
|||
await this.worker.updateFeed(feed); |
|||
} catch (error) { |
|||
this.log.error('failed to update newsroom feed', { feedId, error }); |
|||
throw error; |
|||
} |
|||
} |
|||
} |
|||
|
|||
module.exports = UpdateFeedJob; |
@ -0,0 +1,3 @@ |
|||
#!/bin/bash |
|||
./stop-production |
|||
./start-production |
@ -1,8 +1,10 @@ |
|||
#!/bin/bash |
|||
|
|||
sudo supervisorctl start core-host-services:* |
|||
sudo supervisorctl start core-reeeper:* |
|||
sudo supervisorctl start core-newsletter:* |
|||
sudo supervisorctl start core-media:* |
|||
sudo supervisorctl start core-chat:* |
|||
sudo supervisorctl start core:* |
|||
sudo supervisorctl start \ |
|||
core-host-services:* \ |
|||
core-reeeper:* \ |
|||
core-newsletter:* \ |
|||
core-newsroom:* \ |
|||
core-media:* \ |
|||
core-chat:* \ |
|||
core:* |
@ -1,8 +1,10 @@ |
|||
#!/bin/bash |
|||
|
|||
sudo supervisorctl stop core:* |
|||
sudo supervisorctl stop core-chat:* |
|||
sudo supervisorctl stop core-media:* |
|||
sudo supervisorctl stop core-newsletter:* |
|||
sudo supervisorctl stop core-reeeper:* |
|||
sudo supervisorctl stop core-host-services:* |
|||
sudo supervisorctl stop \ |
|||
core:* \ |
|||
core-chat:* \ |
|||
core-media:* \ |
|||
core-newsroom:* \ |
|||
core-newsletter:* \ |
|||
core-reeeper:* \ |
|||
core-host-services:* |
@ -0,0 +1,13 @@ |
|||
[program:dtp-base:newsroom] |
|||
numprocs=1 |
|||
process_name=%(program_name)s_%(process_num)02d |
|||
command=/home/dtp/.nvm/versions/node/v16.13.0/bin/node --optimize_for_size --max_old_space_size=1024 --gc_interval=100 app/workers/newsroom.js |
|||
directory=/home/dtp/live/dtp-base |
|||
autostart=true |
|||
autorestart=true |
|||
startretries=3 |
|||
stopsignal=INT |
|||
stderr_logfile=/var/log/dtp-base/newsroom.err.log |
|||
stdout_logfile=/var/log/dtp-base/newsroom.out.log |
|||
user=dtp |
|||
environment=HOME='/home/dtp/live/dtp-base',HTTP_BIND_PORT=30%(process_num)02d,NODE_ENV=production,LOGNAME=newsroom |
Loading…
Reference in new issue