diff --git a/docker-compose.yml b/docker-compose.yml index d7519b7..83db61a 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -5,8 +5,6 @@ services: image: new_infofer_scraper build: . ports: - - ${PORT:-5000}:80 + - ${PORT:-5001}:80 environment: - - DB_DIR=/data - volumes: - - ./data:/data + DB_DIR: /data diff --git a/server/Services/Implementations/DataManager.cs b/server/Services/Implementations/DataManager.cs index 6733cea..f5b99c8 100644 --- a/server/Services/Implementations/DataManager.cs +++ b/server/Services/Implementations/DataManager.cs @@ -2,13 +2,13 @@ using System.Collections.Generic; using System.Diagnostics; using System.Threading.Tasks; -using InfoferScraper.Models.Train; -using InfoferScraper.Models.Station; -using Server.Services.Interfaces; -using Server.Utils; using InfoferScraper; +using InfoferScraper.Models.Station; +using InfoferScraper.Models.Train; using Microsoft.Extensions.Logging; using scraper.Models.Itinerary; +using Server.Services.Interfaces; +using Server.Utils; namespace Server.Services.Implementations { public class DataManager : IDataManager { @@ -25,6 +25,7 @@ namespace Server.Services.Implementations { stationCache = new(async (t) => { var (stationName, date) = t; + Logger.LogDebug("Fetching station {StationName} for date {Date}", stationName, date); var zonedDate = new NodaTime.LocalDate(date.Year, date.Month, date.Day).AtStartOfDayInZone(CfrTimeZone); var station = await InfoferScraper.Scrapers.StationScraper.Scrape(stationName, zonedDate.ToDateTimeOffset()); @@ -40,6 +41,7 @@ namespace Server.Services.Implementations { }, TimeSpan.FromMinutes(1)); trainCache = new(async (t) => { var (trainNumber, date) = t; + Logger.LogDebug("Fetching train {TrainNumber} for date {Date}", trainNumber, date); var zonedDate = new NodaTime.LocalDate(date.Year, date.Month, date.Day).AtStartOfDayInZone(CfrTimeZone); var train = await InfoferScraper.Scrapers.TrainScraper.Scrape(trainNumber, zonedDate.ToDateTimeOffset()); @@ -55,6 +57,7 @@ namespace Server.Services.Implementations { }, TimeSpan.FromSeconds(30)); itinerariesCache = new(async (t) => { var (from, to, date) = t; + Logger.LogDebug("Fetching itinerary from {From} to {To} for date {Date}", from, to, date); var zonedDate = new NodaTime.LocalDate(date.Year, date.Month, date.Day).AtStartOfDayInZone(CfrTimeZone); var itineraries = await InfoferScraper.Scrapers.RouteScraper.Scrape(from, to, zonedDate.ToDateTimeOffset()); diff --git a/server/Services/Implementations/Database.cs b/server/Services/Implementations/Database.cs index 737c206..f3cbeda 100644 --- a/server/Services/Implementations/Database.cs +++ b/server/Services/Implementations/Database.cs @@ -57,10 +57,13 @@ public class Database : Server.Services.Interfaces.IDatabase { Logger = logger; var settings = MongoClientSettings.FromConnectionString(mongoSettings.Value.ConnectionString); + settings.ServerApi = new(ServerApiVersion.V1); settings.MaxConnectionPoolSize = 10000; MongoClient mongoClient = new(settings); + Logger.LogDebug("Created monogClient"); throttle = new(mongoClient.Settings.MaxConnectionPoolSize / 2); db = mongoClient.GetDatabase(mongoSettings.Value.DatabaseName) ?? throw new NullReferenceException("Unable to get Mongo database"); + Logger.LogDebug("Created db"); dbRecordCollection = db.GetCollection("db"); trainListingsCollection = db.GetCollection("trainListings"); stationListingsCollection = db.GetCollection("stationListings"); diff --git a/server/server.csproj b/server/server.csproj index ba6e02d..9d418a5 100644 --- a/server/server.csproj +++ b/server/server.csproj @@ -12,7 +12,7 @@ - +