diff --git a/utils/ga-page-view/ga-page-view.service b/utils/ga-page-view/ga-page-view.service new file mode 100644 index 0000000..f0cd957 --- /dev/null +++ b/utils/ga-page-view/ga-page-view.service @@ -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 diff --git a/utils/ga-page-view/ga-page-view/Program.cs b/utils/ga-page-view/ga-page-view/Program.cs index d6fac59..b3da33e 100644 --- a/utils/ga-page-view/ga-page-view/Program.cs +++ b/utils/ga-page-view/ga-page-view/Program.cs @@ -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()}"); + } } } } diff --git a/utils/ga-page-view/install.sh b/utils/ga-page-view/install.sh new file mode 100644 index 0000000..5b2a7df --- /dev/null +++ b/utils/ga-page-view/install.sh @@ -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 \ No newline at end of file