Added ldc2 deployment script, upgraded Handy-httpd and scheduled.
This commit is contained in:
parent
c833571bbc
commit
1c59ed5bb6
|
@ -1,2 +1,3 @@
|
||||||
# create-schematic-gen-site
|
# create-schematic-gen-site
|
||||||
|
|
||||||
Simple HTTP server for generating schematics, used with my Materials-Extractor program.
|
Simple HTTP server for generating schematics, used with my Materials-Extractor program.
|
||||||
|
|
|
@ -0,0 +1,11 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
dub clean
|
||||||
|
rm -f create-schematic-gen-site
|
||||||
|
dub build --compiler=/opt/ldc2/ldc2-1.33.0-linux-x86_64/bin/ldc2 --build=release --force
|
||||||
|
echo "Stopping CSGS service."
|
||||||
|
ssh -f root@andrewlalis.com 'systemctl stop csgs'
|
||||||
|
echo "Uploading new binary."
|
||||||
|
scp create-schematic-gen-site root@andrewlalis.com:/opt/create-schematic-gen-site/
|
||||||
|
echo "Starting CSGS service."
|
||||||
|
ssh -f root@andrewlalis.com 'systemctl start csgs'
|
2
dub.json
2
dub.json
|
@ -4,7 +4,7 @@
|
||||||
],
|
],
|
||||||
"copyright": "Copyright © 2023, Andrew Lalis",
|
"copyright": "Copyright © 2023, Andrew Lalis",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"handy-httpd": "~>7.6.4",
|
"handy-httpd": "~>7.7.0",
|
||||||
"requests": "~>2.1.1",
|
"requests": "~>2.1.1",
|
||||||
"scheduled": "~>1.2.0",
|
"scheduled": "~>1.2.0",
|
||||||
"slf4d": "~>2.4.2"
|
"slf4d": "~>2.4.2"
|
||||||
|
|
|
@ -4,10 +4,10 @@
|
||||||
"automem": "0.6.9",
|
"automem": "0.6.9",
|
||||||
"cachetools": "0.4.1",
|
"cachetools": "0.4.1",
|
||||||
"cronexp": "0.1.0-beta3",
|
"cronexp": "0.1.0-beta3",
|
||||||
"handy-httpd": "7.6.4",
|
"handy-httpd": "7.7.0",
|
||||||
"httparsed": "1.2.1",
|
"httparsed": "1.2.1",
|
||||||
"requests": "2.1.1",
|
"requests": "2.1.1",
|
||||||
"scheduled": "1.1.0",
|
"scheduled": "1.2.0",
|
||||||
"slf4d": "2.4.2",
|
"slf4d": "2.4.2",
|
||||||
"streams": "3.5.0",
|
"streams": "3.5.0",
|
||||||
"test_allocator": "0.3.4",
|
"test_allocator": "0.3.4",
|
||||||
|
|
|
@ -15,10 +15,11 @@ void startServer() {
|
||||||
config.port = 8100;
|
config.port = 8100;
|
||||||
|
|
||||||
PathDelegatingHandler handler = new PathDelegatingHandler();
|
PathDelegatingHandler handler = new PathDelegatingHandler();
|
||||||
handler.addMapping("POST", "/extracts", &handleExtract);
|
handler.addMapping(Method.GET, "/extracts", &handleExtract);
|
||||||
handler.addMapping("GET", "/extracts/{extractId}", &getExtract);
|
handler.addMapping(Method.GET, "/extracts/{extractId}", &getExtract);
|
||||||
handler.addMapping("POST", "/item-reports", &handleItemReport);
|
handler.addMapping(Method.POST, "/item-reports", &handleItemReport);
|
||||||
handler.addMapping("GET", "/status", (ref HttpRequestContext ctx) {
|
handler.addMapping(Method.GET, "/item-reports", &getItemReports);
|
||||||
|
handler.addMapping(Method.GET, "/status", (ref HttpRequestContext ctx) {
|
||||||
ctx.response.setStatus(HttpStatus.OK);
|
ctx.response.setStatus(HttpStatus.OK);
|
||||||
ctx.response.writeBodyString("online");
|
ctx.response.writeBodyString("online");
|
||||||
});
|
});
|
||||||
|
@ -34,7 +35,7 @@ private void handleExtract(ref HttpRequestContext ctx) {
|
||||||
MultipartFormData data = ctx.request.readBodyAsMultipartFormData();
|
MultipartFormData data = ctx.request.readBodyAsMultipartFormData();
|
||||||
if (!validateExtractRequest(data, ctx.response)) return;
|
if (!validateExtractRequest(data, ctx.response)) return;
|
||||||
string extractId = doExtract(data);
|
string extractId = doExtract(data);
|
||||||
JSONValue result = JSONValue.emptyObject;
|
JSONValue result = JSONValue(string[string].init);
|
||||||
result.object["extractId"] = JSONValue(extractId);
|
result.object["extractId"] = JSONValue(extractId);
|
||||||
ctx.response.writeBodyString(result.toJSON(), "application/json");
|
ctx.response.writeBodyString(result.toJSON(), "application/json");
|
||||||
}
|
}
|
||||||
|
@ -54,3 +55,8 @@ private void handleItemReport(ref HttpRequestContext ctx) {
|
||||||
f.writeln(itemName);
|
f.writeln(itemName);
|
||||||
f.close();
|
f.close();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void getItemReports(ref HttpRequestContext ctx) {
|
||||||
|
import handy_httpd.components.responses : fileResponse;
|
||||||
|
fileResponse(ctx.response, "item-reports.txt", "text/plain");
|
||||||
|
}
|
||||||
|
|
|
@ -2,6 +2,7 @@ module csgs.task;
|
||||||
|
|
||||||
import slf4d;
|
import slf4d;
|
||||||
import scheduled;
|
import scheduled;
|
||||||
|
import scheduled.taskpool_scheduler;
|
||||||
|
|
||||||
import std.datetime;
|
import std.datetime;
|
||||||
import std.typecons;
|
import std.typecons;
|
||||||
|
@ -13,11 +14,14 @@ import std.stdio;
|
||||||
import csgs.extract;
|
import csgs.extract;
|
||||||
|
|
||||||
void startScheduledTasks() {
|
void startScheduledTasks() {
|
||||||
JobScheduler scheduler = new ThreadedJobScheduler();
|
JobScheduler scheduler = new TaskPoolScheduler();
|
||||||
|
|
||||||
Job cleanJob = new FunctionJob(&cleanOldExtracts);
|
Job cleanJob = new FunctionJob(&cleanOldExtracts);
|
||||||
scheduler.addJob(cleanJob, new FixedIntervalSchedule(days(1)));
|
scheduler.addJob(cleanJob, new FixedIntervalSchedule(days(1)));
|
||||||
|
|
||||||
Job updateCheckJob = new FunctionJob(&checkForExtractorUpdate);
|
Job updateCheckJob = new FunctionJob(&checkForExtractorUpdate);
|
||||||
scheduler.addJob(updateCheckJob, new FixedIntervalSchedule(hours(1)));
|
scheduler.addJob(updateCheckJob, new FixedIntervalSchedule(hours(1)));
|
||||||
|
|
||||||
scheduler.start();
|
scheduler.start();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue