add service install script and stop memory leak

This commit is contained in:
Kieran 2018-01-19 15:12:59 +08:00
parent cadaa22fe1
commit db22059d10
3 changed files with 34 additions and 8 deletions

View File

@ -0,0 +1,10 @@
[Unit]
Description=GA page view batching
After=network.target
[Service]
ExecStart=/usr/bin/dotnet /usr/local/ga-page-view/ga-page-view.dll
Restart=on-failure
[Install]
WantedBy=multi-user.target

View File

@ -20,15 +20,17 @@ namespace ga_page_view
private static async Task startSvc()
{
var c = await ConnectionMultiplexer.ConnectAsync("localhost");
await c.GetSubscriber().SubscribeAsync("ga-page-view", (a, b) =>
{
_queue.Post(b.ToString());
});
await c.GetSubscriber().SubscribeAsync("ga-page-view", queueMsg);
Console.WriteLine("Connected to redis");
await sendStats();
}
private static void queueMsg(RedisChannel a, RedisValue b)
{
_queue.Post(b.ToString());
}
private static async Task sendStats()
{
while (true)
@ -54,12 +56,14 @@ namespace ga_page_view
await sw.WriteAsync(string.Join("\r\n", payload));
}
var rsp = (HttpWebResponse)await req.GetResponseAsync();
if (rsp.StatusCode != HttpStatusCode.OK)
using (var rsp = (HttpWebResponse)await req.GetResponseAsync())
{
using (StreamReader sr = new StreamReader(rsp.GetResponseStream()))
if (rsp.StatusCode != HttpStatusCode.OK)
{
Console.WriteLine($"Got error reponse from analytics: {await sr.ReadToEndAsync()}");
using (StreamReader sr = new StreamReader(rsp.GetResponseStream()))
{
Console.WriteLine($"Got error reponse from analytics: {await sr.ReadToEndAsync()}");
}
}
}
}

View File

@ -0,0 +1,12 @@
#!/bin/bash
dotnet publish -c Release
mkdir /usr/local/ga-page-view
cp ./ga-page-view/bin/Release/netcoreapp2.0/publish/* /usr/local/ga-page-view
cp ./ga-page-view.service /lib/systemd/system/
systemctl daemon-reload
systemctl enable ga-page-view
systemctl start ga-page-view