diff --git a/backend/Mutualify/Jobs/UserAllUpdateJob.cs b/backend/Mutualify/Jobs/UserAllUpdateJob.cs index 5ab4c3a..995941c 100644 --- a/backend/Mutualify/Jobs/UserAllUpdateJob.cs +++ b/backend/Mutualify/Jobs/UserAllUpdateJob.cs @@ -20,7 +20,7 @@ public class UserAllUpdateJob : IUserAllUpdateJob private readonly IUsersService _usersService; private readonly ILogger _logger; - private const double _interval = 5; // seconds + private const double _interval = 4; // seconds private static bool _isRunning = false; private static DateTime _lastStartDate; @@ -91,9 +91,9 @@ public async Task Run(PerformContext context, CancellationToken token) } catch (DbUpdateConcurrencyException) { } // don't fail on HttpRequestExceptions or DbUpdateConcurrencyException, just keep going catch (HttpRequestException) { } - catch (OperationCanceledException) + catch (OperationCanceledException ex) { - _logger.LogWarning("[{JobId}] All users update job has been cancelled!", jobId); + _logger.LogWarning(ex, "[{JobId}] All users update job has been cancelled!", jobId); _isRunning = false; return; diff --git a/backend/Mutualify/Jobs/UserPopulateJob.cs b/backend/Mutualify/Jobs/UserPopulateJob.cs deleted file mode 100644 index 470a497..0000000 --- a/backend/Mutualify/Jobs/UserPopulateJob.cs +++ /dev/null @@ -1,121 +0,0 @@ -using Hangfire.Server; -using Hangfire; -using Mutualify.Database.Models; -using Mutualify.Database; -using Mutualify.OsuApi.Models; -using MapsterMapper; -using Microsoft.EntityFrameworkCore; -using Mutualify.OsuApi.Interfaces; - -namespace Mutualify.Jobs -{ - public interface IUserPopulateJob - { - Task Run(PerformContext context, IJobCancellationToken token); - } - - public class UserPopulateJob : IUserPopulateJob - { - private readonly DatabaseContext _databaseContext; - private readonly IOsuApiProvider _osuApiDataService; - private readonly IMapper _mapper; - private readonly ILogger _logger; - - private static bool _hasRun; - - public UserPopulateJob(DatabaseContext databaseContext, IOsuApiProvider osuApiDataService, IMapper mapper, ILogger logger) - { - _databaseContext = databaseContext; - _osuApiDataService = osuApiDataService; - _mapper = mapper; - _logger = logger; - } - - public async Task Run(PerformContext context, IJobCancellationToken token) - { - if (_hasRun) - { - _logger.Log(LogLevel.Error, "Populate job was requeued!!!!!!!!"); - return; - } - - _hasRun = true; - - _logger.Log(LogLevel.Information, "Populate job: started!"); - - var users = new[] - { - "2","3","7562902","9269034","11367222","9970083","12779141","10549880","5199332","15406985","10323184","9938943","13211727","4175698","6600930","8640970","6447454","4108547","12952320","7341183","16817965","7525949","7342622","4504101","12408961","7512553","7813296","13108233","5339515","10651184","6114695","6304246","1419095","8856806","14106450","8251785","3717598","13962152","2291265","6937470","5033077","9642774","11443437","11592896","13767572","2546001","4787150","11626318","2558286","9224078","11604978","10077431","2165650","14215850","124493","11692602","13300203","1876565","8007528","6524092","5774823","7918057","3345902","14626797","14970132","3498155","2766034","9902255","9072586","12130906","9849451","2204373","5981005","7892320","6404583","13204938","11552867","2572468","4882979","11415687","14385814","7025429","11806306","18351160","8472976","12366071","20120615","8335950","4581069","17446380","612898","2590257","7280590","7027766","9993348","3765989","8116659","6123428","15296720","10145045","10073635","6142837","10083084","5447609","14097024","1719471","5645231","7178423","8179335","12258658","15293080","16900233","11405263","3328742","2094566","11198996","10916561","11829390","7972980","11269055","9313951","21207816","17202789","4650315","10092099","12155780","5218178","5182050","11652827","14733798","2932510","9942252","1860489","4256461","1473890","6806754","6619303","2675255","11215030","11878480","10717635","8082362","4196808","8443945","15339747","8868635","7883418","10199538","12632867","7724148","3171691","15587374","8359561","8181420","13733307","6591496","2012453","3149577","5371497","6157605","9414229","13016277","11930908","11496364","5455713","6800152","3126596","1650010","10162611","9694263","3506793","7657831","4908650","11553627","1492995","6574823","17104779","12970596","8198848","22710559","18897621","18946207","9254536","8075782","9712285","7075211","11375105","10196805","8581210","13214651","10380158","15225729","8105138","12159899","5423872","10760701","6404488","19851850","9067591","4928776","4007897","6725771","8275006","4141918","3036545","14764185","2562987","14494895","3069354","8799923","7469192","7587734","2511839","6668666","5527745","12204079","8660293","7818990","11684622","754565","10746970","12241010","4170932","14676719","7908994","4916057","8975836","10572078","8788058","7780605","18414466","10933605","10903510","5477343","7611178","9578404","2768421","10188022","12378737","13065919","10613549","5370153","4852013","6922333","14267996","13304804","7774709","4133758","9722332","21435330","10829419","9561644","12024659","2553519","18604347","4511522","9509358","12976255","5155973","5724445","3533958","4734703","7627844","6360447","3517706","9331403","6778877","13380270","10320157","6387149","16395194","18323396","14733785","8901306","15567583","5496627","12353810","6404027","13062430","4633724","11388931","11983229","7216681","9303599","7108275","4470775","12479148","12686213","4896825","2323131","7341081","12179012","10099005","15599273","11558207","2214428","17707250","11351654","9256771","11987104","2565902","24371637","11948617","2944449","3641404","4687701","13586618","13207763","10778261","4787223","3409977","9052194","8370755","6942259","19514891","11509631","8195473","8925266","3995630","4830687","18371932","10748631","9099771","5919819","1777162","7969090","12052880","4945688","10640486","9980174","6951444","1558603","10878651","5319959","8558031","11383358","5645667","14573462","13057699","23913323","7629285","9325507","15818398","2831793","12637617","18903701","11393702","11195861","6765641","16756305","8429128","2282047","18284065","10507706","7790974","6341977","9797230","7802027","11973981","7192129","7415910","12873118","8816345","4209965","9501251","14601125","12595640","11663882","14848176","9818947","7787629","10223298","7010761","10625283","7344333","5392289","18092331","16800870","8696866","3068044","12736534","6502403","2110845","4250296","9747255","4682646","9665206","17730661","12040280","4752123","6337610","15574234","8329753","8780223","9516156","16870029","10051720","9505131","12088216","8133880","19998548","9125830","11307733","11079968","9961301","4309566","8766780","1460263","1629553","12389546","18802561","9211924","8053576","4497582","2537924","8702650","10976513","16139008","10486062","7246165","4321876","6133101","13705417","15556397","12309147","10346185","8454773","10841911","20263707","11120124","14061950","4253615","1334384","4230827","3043603","8698024","5965797","7410343","9397144","14689295","5563397","7784120","7806847","1460342","9227895","10121815","5247450","18973222","14992852","10384559","11684952","11548737","16436446","7961288","5459981","10481416","6303313","16227745","10890712","10064064","2395405","12482253","11750028","5963637","19309181","22274174","2454767","7211425","12036243","5403374","11310423","11749789","12563874","8671241","6735738","7477458","84841","14358922","4959454","19236903","12958376","5302223","13872272","4033022","12434652","5798349","6830745","10567112","4637369","7165477","9276293","11417993","11410595","8291141","1874761","1705090","6662652","1545563","9768274","12211248","8382196","7959222","6506107","16359045","11610772","13469141","12147277","4782236","1516650","11021073","6375834","7081596","18441629","3215487","14277157","9830628","11461426","12739835","11399348","8529128","3551255","7422021","8688804","4750008","17207739","7959945","10077132","19892110","251683","7673764","4608074","6244066","10239034","14787295","10814480","14289060","3872987","9987634","4780986","10463344","5326197","9217468","4571123","21527894","1887616","4550695","16094871","7786382","4361729","14176480","19887342","3474202","9088637","16691293","11836334","9704802","12133744","10981997","7341471","14272451","7825971","6284683","9719351","11226645","3048222","6524603","14457718","12514014","3360947","9723127","16085078","16702873","12041303","7447249","12009458","9920144","2064831","17649390","2540011","12352050","284905","20089142","3099689","9650310","2734971","9513980","14247293","6267851","10270787","8769858","11357673","8252592","12048368","10067974","10735379","3189069","4857328","5425046","15734664","11967146","12805967","19154954","14249222","12169267","15816872","4495889","6136994","13596160","2802727","11790672","6169483","9820878","3274346","4553852","10571948","8655635","11673059","8128670","9494931","1818573","6567297","7701428","19110609","6407282","4856562","13628898","14671051","3772251","15837148","16593233","15119977","17724014","2303856","7785655","6685958","6046526","6440158","2757689","7836718","15428284","7781914","9888266","1646397","11918710","1389663","9863870","8045604","4705732","6315784","11469447","6215032","10069909","4142572","14633196","7817539","3792472","11596326","3698691","11113490","3545323","13783044","12667143","11315329","9106690","11758404","11922986","10056419","11572692","7728757","12701607","10354591","5783315","8775024","3521482","11129034","3219026","11538636","2490770","5570115","8445098","2507306","4100604","3929529","17851835","8523723","4301976","16031697","11607790","6667041","8749563","7242804","12265149","11034873","12967997","15803625","13080423","6928036","10333154","4696315","5201225","4317480","17949915","14958380","10918320","6437601","7948169","4785308","9858112","4797389","7333471","17663097","8935379","10807597","13884057","12777806","11042418","5106613","11481765","8274648","10531825","6024502","718454","7806753","16416081","11584075","10794815","11671398","17222781","16314022","14731375","10476092","10917620","139670","11635349","15423958","21811804","9948625","14361133","4734244","1458932","5642779","12252724","7448448","13041927","11715109","8682683","3441616","4796794","8861058","6014327","12762744","12420904","10210668","2694475","11961979","11345747","13068741","3820683","6303818","17064861","4112304","7657761","6888972","7774197","2212941","11869374","16844298","15954602","843086","14897088","13652059","9336886","15658574","25444680","12070555","10662278","11141578","15493529","12911800","11376152","20461077","13831265","11584669","11078815","10394538","10652837","4448118","9377901","9997093","2321050","12932016","8170186","23417038","7005392","11243772","14201221","18153252","10691605","4185400","11811792","10504596","1041943","4322869","6661913","23640655","8641416","11740484","12197743","4163860","8275270","10909049","8576721","4497691","8603987","11198186","1336437","17468193","7613309","1987591","11547643","4383303","5175726","15169131","2758279","13407873","4166621","8385864","4012086","1440585","4845266","1837989","6788821","5791401","6159669","12652779","8631281","12048359","126144","11885405","4415285","15085171","11234706","12145220","4215381","11479551","9322480","9843825","1712195","15095811","3213239","8957338","3542416","11144984","3621226","13339229","3556891","5575135","6195814","39828","4277702","11027465","12329989","6295380","13244804","6920104","14715160","4548264","11617315","11919665","6216284","17159280","19006618","7205256","3771576","6017901","9049630","13911889","11184264","10724221","8758104","9393446","11569142","13334336","14503423","18507628","13484596","15263047","16620877","16509171","5155680","11113213","9904093","13560194","9820792","4628473","6462387","1341421","7068158","9053187","13467691","1184175","13798649","3163649","9836316","10753344","4248481","14873904","6237416","7689631","6831210","9203015","3614356","4460587","10058728","4585205","16617297","9923423","11921324","3062998","8147403","11433313","8386483","23592892","11053358","12083446","16750823","1715441","13926983","6090175","6145220","4527762","17462509","7461231","4095562","13122754","8481621","22396092","22782807","13510394","4495871","3895969","2848604","12403742","4733185","9524966","12247457","7341086","6511038","17440191","8441074","11091594","4384207","7467327","14534809","12260184","17636394","6236248","12111972","16348690","8826833","4819811","11495128","13175328","12790479","21592138","10018881","8222366","10964155","21619075","6916642","14547194","8356568","11447637","4360718","12949673","1504556","10302933","8226107","12482926","3675733","12776754","10569535","12974032","8250297","14017762","10656864","7101953","10559526","17075834","19485895","9756249","3053599","5386106","6703655","1600432","1234432","18361419","11955716","13353696","8236827","14264961","13571078","9217626","2927048","647309","4281350","7635621","1619961","7789098","4422457","4917316","47844","11106929","3172980","14232585","953405","2849992","1023489","6245906","2775906","1303685","973172","5349762","4413842","6699330","33599","2021758","10754709","6668491","5444914","2264338","519406","12446262","11146934","3632016","16420404","10830974","12717815","10080990","18983","14666725","70730","3550729","4781004","939966","10660738","13344661","10733055","4504049","6149947","6796722","11172237","10361007","1429071","3538363","2129634","3088364","15458810","15413621","5249196","3946607","9318565","18133003","7094393","11196666","1986262","1868745","11929867","721473","741114","10700393","10651132","2319935","10853878","527298","1266166","10030328","3516728","3359654","4715598","6671641","11320627","4221626","6312141","9379821","629717","12704035","7714136","812814","3891023","3148900","3222676","2312106","11025519","2510199","2295850","5315077","9070739","18720361","7635560","9991650","7104633","12948001","17822442","3958814","9192260","568740","2787415","14471463","11189453","3189514","10060797","14663729","5179557","8573172","9665545","9250996","12142950","4044289","7457788","11934348","4657504","7918664","4188624","2900169","258104","9244747","12083865","4382220","9936528","6311630","13097638","6200807","493378","8153672","26407710","6255471","2657537","6646269","2211396","4039773","12708119","1810719","2623785","1650137","15272879","1428455","4502238","4587526","18345293","14188069","2050872","1770700","5548045","14842245","8591817","12324616","9903958","11495715","2206844","13591425","1082977","11628790","6567341","11568110","11629570","12585048","5420473","8876153","7451956","7915523","8364754","13748308","2184751","2294367","6479616","6957262","2762603","13627426","1405558","11571927","4787843","3045895","4426566","4533168","487985","5040303","8937248","6217178","619514","10313502","4553150","6673790","472545","7050754","2198995","13352562","6433319","147515","818633","5953425","707861","8321943","3856263","13094497","7636779","5956337","8018211","1306161","12404210","3556856","1457224","7503114","1843469","3417469","7703616","665148","4519494","11472811","1780106","9119507","13944382","7183657","12760743","551549","1694887","3753204","9923321","8214806","8244635","7753804","3410997","12306501","10013791","234788","2008391","11108658","5256529","6215046","9199948","592971","10085715","5101306","275309","4764671","10410603","11057141","10819779","4659319","9152737","10931846","11219667","10509043","10956506","959763","7614055","2185987","6088976","6292234","3167235","7264641","11141678","5710809","2199427","11295141","2035254","6036351","10249166","18589073","180488","6300910","5271371","3859506","1408026","2447934","2419628","8349047","651307","4843831","3786620","14336433","480668","12375044","8960455","15997508","4886541","3611401","7662338","9021189","1056329","13817114","2984074","13993365","2330619","648613","4591451","4710482","4759819","5242158","7592129","11405431","8960451","5132353","11421465","11871006","12646484","15030466","2015300","13241562","3826301","4653583","3715849","7364330","11944821","4423756","2966685","4372688","16377488","10908403","8945180","3460534","13268805","16004080","14776812","1275758","9723388","1266102","7217249","19142610","3706039","6808620","7119659","6411122","6757317","16201107","3018516","7382962","5054244","9809625","13205755","371546","12288389","8621733","18736170","10557490","8279758","13170480","2295157","7238485","9851804","10650953","5795337","13206785","22693832","3184860","4262229","10204412","1045281","7279141","2312952","5000924","7078544","6489078","4025457","12054043","4909088","16329318","14571477","8211461","4430186","6221425","311610","16576647","3730848","8923608","8982391","11651760","4800074","1984236","11726139","831807","12417587","985833","1967621","14571048","4751054","4712927","3540294","17130840","10395167","11484485","1073575","8745248","2955661","11611290","7924600","12517831","8525223","12919410","17106008","1097352","5407620","9047729","15252736","6264206","9508109","5174602","3336090","5964035","7127366","5870453","7724523","10408325","9282017","4934554","243917","1003234","684433","13425662","3423454","11660870","7729631","5085278","9436126","4298072","7083079","4279650","12949243","5006102","4243090","5312461","1995360","11397072","2495528","5026496","23635008","4886116","2003326","13888092","9790656","11984937","13122344","2556958","10822220","12946910","4115537","8902981","7432074","675132","6011791","5904961","4759935","11948017","5754859","2365927","8954633","1788022","2033611","2040822","16583294","1818279","8601970","579370","12636109","2036685","832084","18068988","7070956","4426728","5909569","6677788","16783103","4613551","5015561","2138739","12941954","1050953","2477878","7564205","9498216","2906436","12484908","8630257","15715264","15607940","13963691","17485251","11770698","12203997","7060756","7476333","11305398","1218895","10281594","11353569","3256299","17159233","2662332","304520","1787027","17209706","8806469","4578726","2239767","11932013","4135257","3010281","10975613","6842851","10213311","4222824","7601598","112408","1241645","10013005","7449054","3761983","11346868","167586","5323224","4014879","8533278","3812276","1011389","3880134","5623529","3870420","3496358","2742030","3951809","14193941","3574151","5336065","7382321","6185335","11921209","4419502","7717867","916693","4452201","7304618","345516","2332976","4138879","3914073","7919079","7633130","7064509","2336656","12047944","3343488","4269282","6718395","6162099","19501020","7844452","6252503","6492061","3432672","8929394","1810239","903978","673214","16916295","2466360","7576988","4389591","13109448","12086559","17908427","2754924","4824078","14053835","14293652","7424852","9402889","12577894","252524","10184558","14710989","16533448","926614","679524","5510197","510692","4566107","6752116","11893325","5538115","8589120","7433950","1294891","19364028","1358586","6436746","12410690","2231356","15324900","11305115","7051163","10699801","1856829","3148418","5920715","5442931","4939107","4199136","280147","9469362","4190190","6286388","11401653","1386931","4674411","6633574","9096716","4552597","11704595","10683628","149752","8811633","12801054","13260523","4720411","4520333","1467502","12677317","7754110","2317789","9014203","5035601","1375606","480984","4507667","15475797","4643576","4844909","882636","2468971","5356586","1248914","12202466","11965744","4239101","15434024","3624862","4898482","9353069","7057787","18733683","13664119","9074108","11182399","12239505","4574327","20604698","9480404","3252826","9924405","9098563","10229383","6367247","525262","12612018","5597947","2022445","16628019","803766","9197263","7431496","6760716","1288502","17865200","4844496","5287410","18355818","4710974","19606212","26131645","10371493","15392570","6745742","10880317","5286213","12674517","18251483","660311","11048151","256802","9758637","12904237","6974470","64137","7630971","4771050","4263943","3178418","9389213","7626092","447516","6191653","7361815","7781304","2331960","4437004","6350661","2909663","114017","6787641","694480","2865291","5306754","11695860","8932920","6578664","4479041","8433636","689997","12849730","5266023","7867580","12443104","3673575","8967040","2044444","7935830","1737729","1274825","11830924","14366893","5189431","431594","3425533","7060243","4688997","6888206","4258689","12301297","4374853","6165451","13103909","7854417","6371395","11068443","1638303","10932328","6255613","4054429","13353381","9552259","6881542","8497340","6319189","8305894","8880920","3291562","10767904","448316","8334445","13135351","954557","10482443","1807167","6155320","10811154","8413114","8445602","13690637","13092258","8066441","7777836","11843859","12280995","3853840","9953711","2699198","10852203","8040245","14073932","2917464","9009969","8453742","9582556","2749481","16052525","2629756","3201658","5911299","642585","4101254","7904667","8514740","9475189","4140055","936088","3308471","1355695","6003437","6740389","23238839","9583048","8876938","973981","1661227","3637436","12195496","16289885","11070577","6854920","6149313","12337864","3174184","22444525","16320311","14947043","11680357","17015562","165027","9540073","9905079","8741695","8050850","26475388","1382717","11199742","17834696","13249305","11325757","8057655","28599539","14356353","12630336","13613362","10072733","7160196","11563671","15117603","983349","9511518","11604267","9551196","19148438","21948424","11525993","7632508","12136108","9208819","12874236","9085164","7231722","16500346","8987606","9584873","1263669","15252950","3044264","14553146","29485001","14510301","14254867","7612550","24748957","10079336","12807783","11293254","26454214","3337332","12014683","24664049","1977606","12780046","10907480","28571440","13664116","15159808","4609767","14520910","12639462","16650552","5427801","9119501","8219167","13279859","28854025","16491572","7491106","11601107","2875968","8484987","16360256","12615278","9773619","8145223","23487206","11260982","7555792","6490509","16067522","6349821","5991961","16818858","10810508","28653214","32553132","6333166","2277798","7115174","7479684","1134683","4315477","6372422","7807444","8303357","4908773","15776151","6876752","6956922","5136582","14179968","4046406","8264451","10726804","16869472","8650631","6451537","2680544","16011592","18962176","16910711","16462012","14269506","5071871","6439880","7994829","533502","12160279","21567321","9258564","8929896","13175389","9981017","16536516","13595910","14324722","12177903","12439209","9821194","7597165","11719422","7609510","12273160","2076374","1152851","7692731","5663853","10869389","14415208","18591473","5082685","5116922","7280717","9057823","11499752","6359835","4407678","4841352","6367560","11499467","16403250","24391475","2349769","9383908","8883498","11931563","6680785","14623658","13811400","33898203","30338965","5918857","13938746","32179762","4655546","3918650","1893718","8609627","4493348","7774222","19883639","2852269","6502903","7739269","16238050","2774767","3802922","9117141","8121109","16262582","10894640","8027517","3075337","5321719","961417","10868191","8767392","9912966","8071438","7299864","8192004","2286121","3811626","2927742","19931117","27486456","8011704","30370354","13857986","30474711","1656336","11799110","8190266","940878","15134794","1059945","20089489","14822582","25176275","11071662","6401769","18603653","8089664","4126437","11117835","22741631","3023007","7104549","5217107","4050738","11296097","12232503","2180885","4019797","19975342","7086439","24679550","6194830","29780191","1139209","4901066","13108155","15013926","5482401","5258461","11290311","15225247","7556189","8256770","17656872","4632503","15231510","12478373","9864847","19411222","24587831","9213381","25734391","21058672","5468461","13410346","8638977","28818110","18265351","9228032","3196091","13135192","12611862","21973054","2512120","13673007","10168328","14389442","22103250","5128029","6866480","1506103","6532566","10457907","29884182","20602365","5938161","4251077","9976154","8494233","8213519","13766261","19021431","7597914","18577881","20382819","21502158","11833538","8368181","3356580","5592441","6388516","7722827","15821708","2883899","9472201","10363380","14892190","10520757","10931926","12892087","26820002","13892153","12798183","3165416","6092181","20822544","6752242","17359546","785137","6205471","34167153","22437571","4940698","3307897","12687433","24718103","24910091","21564948","23064382","11619349","7091511","5750235","10882115","4964596","14041465","7559291","18793276","6471926","7136990","4799788","12264918","18948846","2879608","10079029","31945414","2198070","8321579","9503098","8693851","9755504","16662508","11114972","7488794","24350989","2689370","7495614","33031996","12725502","25289165","17411618","14034809","1799973","845733","7168322","16383529","12029122","11574707","14890564","15373510","5088784","8917069","14054504","30524649","10250413","15013948","4130926","19328432","30816530","10268533","6922240","18047445","8897643","13189156","8697654","6096445","10887614","3949268","16802529","4232665","23465796","1603962","6950720","11392868","502722","13051275","16892858","19540047","11306513","7582420","6447505","19577961","7095592","8364237","33159585","14451706","6198876","13525805","2250574","9287891","5503693","6260841","15698237","8669774","15386539","3644233","14156639","6844521","5146144","459886","6757492","21852708","8000318","10864040","25684740","5040981","21823783","9503545","5506349","12488630","17828041","28816427","3811831","6278008","5326467","16165574","14630770","4069690","5009970","1594036","4266840","24747565","2345156","11430848","32191509","14167247","11457644","10854710","13465246","14197674","13100247","7930622","1282954","2586173","32335531","6243805","554976","34086357","23672570","13157438","605973","4437710","11185769","14957367","9311768","8159528","9420989","5947521","11632258","2998248","22547308","4603900","4566941","4601806","7189946","7320933","27870048","9757858","21448085","1762267","17413733","16846749","11411697","10335557","16415779","15862390","7690078","14608076","9773629","25036085","6056862","9039824","1881639","9006320","30114023","21444412","4433058","31291088","24042710","15002915","14581894","8214424","6807238","4499547","6793778","920861","8097465","17112933","8668896","16455092","6403385","17053470","9950613","15378832","31500644","10998824","689414","24486635","19809779","7330199","3866964","1697789","21990398","33827439","8743513","5310623","178038","5384639","25396679","20555396","10806437","1785084","4328137","25140935","12052009","17061174","3317042","10555660","4669728","22221875","6476359","7636798","16837711","14072678","1807472","13281473","9468283","10852632","7390420","3738344","587737","11253595","17415683","1235444","6932501","1271807","7897892","7890942","12703319","8339729","9964420","11653565","12908933","15958608","24328769","14955727","1031958","8829696","22338549","8327905","2209763","17278926","11786656","5992551","2077833","12155303","5207783","18425848","6647589","5151647","1716059","15191942","2073644","14433939","9099822","13631399","8321917","26012543","11722058","11262025","10384069","6252972","34027024","10584732","7945286","215127","4707874","1890084","26266042","18649724","18535399","2617190","15841682","17457030","3560258","1395946","9760363","6506484","12119797","25233154","6582864","13547861","10648818","8283661","34475085","13715811","2563435","27997121","17129882","16596008","7137930","17398531","5111479","12182568","2335913","2478009","18397349","11913050","7234023","8532419","22747806","23280447","19352364","13302996","8023063","16422988","2326627","21203707","8654205","7575086","17797595","16327582","1258873","4097035","26523387","6473147","10999079","7935022","8275687","11094496","13012096","22096284","9738123","9600978","20429487","4521357","2398168","8772103","16731028","16736215","22943605","15118934","18535502","20554452","6508754","35619347","32731855","8306118","14225265","5136821","21665031","4588852","21072436","4154071","10674189","7844013","17870152","9169747","10436827","30549266","8265940","2412835","2169329","10734140","1303131","8791682","7528639","16290649","6822086","12086753","7258362","4376346","3869519","16997964","8645621","13890993","13600684","11294874","12613966","6395930","8089834","8438530","1490757","5538419","17776893","16100800","9623142","6303021","4740847","19770798","5509009","11232658","6204697","13303993","9786011","8925569","11148429","5285438","13959539","6306704","6657019","16744181","23395646","7171110","15870307","8498207","14359856","980092","21435492","652891","10449071","2302140","10096125","6936385","2535243","13588741","3458795","21108158","24326387","1625581","32315374","2786984","17841784","12749779","15517145","1500725","4364791","16056694","11002287","14631339","16101321","7955738","19926884","20215461","6651672","10742918","7510267","9819975","3784062","9740317","26065341","4677373","8652856","15514586","3320280","5309575","3522512","12022477","1600041","741819","13122339","9421030","21403052","13643601","15086387","18962994","10613075","8808087","7700831","10370310","4719175","2828556","12990538","2913584","11692528","32586730","4262417","8824190","11134326","1595370","6201335","22489321","2999359","13795732","14134115","2568493","492418","7902082","10126927","5422683","174347","34406661","10664451","1292021","17194299","12056208","13403462","25990072","8383573","12142739","6890639","14838522","9950122","25350322","17812031","10151766","32223476","21515245","16493469","11515892","18718856","11716851","7718539","18912101","6419257","8188876","2660111","12409081","901896","16867717","8601048","7329619","23361435","2083934","4802147","3597096","15305059","9841880","8822535","11108942","10167542","12082654","34612791","19530236","16375559","25491585","23647027","13392709","23282637","17002314","1926134","14838605","34612411","5006818","19237097","13217592","8049216","9920534","15330641","7241253","8957119","25133826","4640844","12067316","13898575","21942127","7850538","7546614","9628984","2732162","11609084","7183087","19106638","15429414","7257168","16348066","14119296","27787056","10913397","17288302","2217753","31177149","263110","6632605","11426995","16830329","18539549","17823779","12388693","28750311","3285867","30933929","34186004","18826833","14076207","5250153","16943565","19236769","7090541","22907037","4616752","3383404","6712725","25956888","14706521","3040937","11764134","28616198","17833202","25606416","15625432","3596834","22737792","10449125","16574755","12294759","2505011","12803930","11823851","818907","8306155","15515516","3728315","1346121","11700865","8838763","9567727","17247832","10547895","3073525","7169208","15789614","27304274","6580862","15672456","3230341","854580","18065598","5065096","32928851","30243509","14438623","11278351","6048245","2239411","17050115","18127876","8024582","32648254","27166965","10615367","5179995","4045475","4471879","1686908","4122437","974012","8987388","15430904","7778655","8438068","23048879","15209712","34775207","14948488","17633940","2239480","25435609","7041138","13457399","7563054","15859748","866297","20771841","15292962","19646138","547957","14544810","25201175","3335349","33984717","18560307","11515189","7002965","2865172","1897332","6214893","12424533","32800625","10625447","6574928","31429905","35005298","17664300","6503700","374950","2607498","7807460","1083444","8770622","13563794","4455389","7215423","11038892","697007","3643699","3276678","3384796","1262784","876419","3724819","10659264","7269844","8023947","884838","136385","14568255","9008010","5285786","7937261","7740442","4557972","13291360","23470506","6412103","14052880","17759140","906825","6291741","4689256","4125666","5332868","1959804","6872873","20198757","15995993","17493012","1538223","1786588","9687503","12548363","9126736","384034","98985","8938243","4993032","6135272","3686901","11799304","5013564","4367742","1865637","906991","7188652","14697193","16778763","2833526","8104504","1102135","9922896","5028866","6894424","2456804","4183406","5014664","18630149","2771995","795918","673542","13033390","2910381","7056658","2140739","637452","14400817","11592579","316356","1119087","909640","224280","7911950","6417190","9508031","507455","7198327","508616","10180454","16266640","5200775","12148373","481582","19901680","1703330","1904899","20042402","13695950","796530","3715691","15409012","8947341","6787213","6509269","394326","4555581","5088562","21852732","290128","8453282","1903966","2044181","4450549","2033484","810813","7423126","3167864","9050875","2542811","7165127","7822081","713708","11520909","1176883","500420","2283992","4337536","9568542","14886954","672430","6094216","1572432","1269228","11036509","4745648","7401","3777672","8593837","2610149","1164931","457766","5287838","7487058","5427781","2195195","599290","4127449","8331320","10293972","14714592","14173115","9390860","8818089","295855","510950","11237954","21425611","181449","10825359","8887646","7385703","12962910","8967013","14050018","10043416","1997269","1533122","7186791","9008382","9489153","5569341","16700987","3294785","2527887","2320773","7969116","3593992","884059","465153","551604","6645805","1800629","17075859","1029022","8833940","426357","12735929","3439745","6276709","2173281","1810773","702611","11374564","5851253","2715118","5425594","22879634","1624912","8742670","7122829","1234747","7621152","1901704","11066144","3351775","7033479","9603470","3611370","8922845","7777155","9914579","1619547","515277","7772606","3632469","2035344","83291","6764344","11408442","1631148","9633811","1211264","6806934","2337821","12876952","27809747","14681885","16676226","9676809","7003484","1787011","2701295","7402271","1238085","5306848","16191971","9938229","2239680","6566043","2685408","10633982","1892059","2192669","4824714","26539515","5299293","156349","14708449","7701255","6950347","7511357","29874212","2164993","10613885","9983971","2037086","2895906","9420022","3561508","1058403","9746232","9209430","1696950","224335","439639","766371","20023920","8379046","2311663","5035711","1794766","233485","4909860","1772272","13820600","21413443","7916800","3769280","10694200","2789090","2956103","1589409","25094413","5245152","6625826","11910916","2271556","13679148","10533456","4372863","1947720","3193698","14072208","612136","787429","7813289","1174962","3938388","100263","9149201","1561552","25033390","14248271","15880602","3280542","11447466","12811744","1799191","11072909","2781054","595455","11005599","1414471","5256037","6107943","474387","172957","7270659","2537412","799568","25288942","2274922","24283210","11238769","134410","9526728","17540374","1200833","6276900","4409670","249094","2044810","13409407","7675786","155707","1625585","9445913","6082643","20720106","13547767","39723","17978999","9262355","3646750","6487540","7853536","7066483","5810867","7911519","1116729","468029","125308","11993912","3635636","8189627","8903888","8117350","1936744","9261187","21291932","2244644","6804979","967981","732974","28229708","1691488","42440","13079214","4005237","355603","9264776","5043517","4007649","9517410","3692839","25695490","2904140","18346655","1282662","734548","8942131","16191041","2825305","9135328","1861025","11720359","4897790","13199768","30769374","12040363","2972843","7669461","1860193","9132490","205257","3184191","4013317","8787678","17559294","1175892","840715","18916920","1031172","1385831","13036880","21736080","1207106","3959431","6623871","669531","2499089","1319686","1764326","3679969","3273043","25662684","3429548","3252709","5018747","424118","9547517","1895087","8620974","1451311","1943301","14875399","2900875","2089876","6777358","7050679","6432714","7699030","5793075","1897982","3831514","13092108","728738","295488","734878","2773015","255854","211825","10238680","1165475","663075","887602","9148286","12069972","3307319","219916","7300592","10065976","2543764","1387762","33025956","14184157","11229259","18081003","2761022","7912447","1980256","1116341","10480961","2131990","7556673","3701211","9077916","1110109","15967313","6478296","7003491","2615199","943743","812331","9195425","3794239","1916043","27161397","10747723","716764","7788458","3388831","2883031","3213950","758406","10790649","1433586","3935111","11420405","2402586","10083439","766374","12040572","10910337","6132697","10132430","19791211","13026904","7727987","8046839","4477497","137227","9526558","7985400","8748664","3154852","877011","10512663","9880422","24675802","3155787","485007","4980256","17233884","10303887","14318312","6117525","8716749","7304158","7195415","2288363","17932840","7082178","31323430","8677684","12598261","2071008","7589503","89545","3885626","10569738","5332153","1020304","18282863","7851086","3036686","16270273","10079171","10878878","15314355","29511549","2722489","7381289","14952077","22791301","3693546","18828348","25393074","21744976","7515326","12634757","10329095","26688450","5144698","25826291","18032915","16012377","2655836","3375226","11976455","18338179","14516576","12028216","7354881","6336721","7860283","9666710","8035811","6378800","16734203","4270732","19965357","16819909","8902097","7853143","10231836","18271627","16322711","2494747","10400730","6968857","10137852","5527957","17721836","17460326","16415677","13450592","20226914","8862836","16235845","18664411","16317888","7156634","7590894","15164383","18707350","6824258","1033244","10351684","7486692","3721535","15838669","9707898","9918331","5402803","10332424","33192317","8519296","13622614","5684525","13408635","18172498","16162078","9821346","25226992","6452862","16207464","8768801","13847951","19446399","5604329","11658296","6066359","3874031","17753122","11429144","11778716","14245127","27404774","4123399","7326238","9085137","8538906","10364342","15203710","6431950","14767969","3835515","11557167","11765280","18546367","9697642","17753835","25804954","13967954","25024313","15514768","9919550","3337688","24331923","17106738","14281898","16419138","24153103","2218047","12452291","26473894","12386417","3632846","13488325","13601876","10888689","2573716","7014697","2141612","4194612","10580267","7296731","13190286","29621751","31454909","14588134","22184661","4790958","8021339","7222674","24144271","4952941","23401664","11636434","17557759","437945","8748747","20360332","24140109","5190592","14259202","8901267","9168021","3166596","4258495","7288913","12101157","11270477","28917477","23414371","18027748","2570019","24880938","16297375","10125072","9049282","12017594","12452131","28251667","11188249","20834952","9702339","10011429","10613612","13450837","14335907","14703345","7457801","13656264","6264519","18350349","8581031","10745260","10453382","26856985","13538354","8491893","8291500","7156052","10696707","7509879","28966853","10001325","24795344","2427023","12320264","24057093","11829623","11544638","10344857","3667577","18270641","30254673","8039923","3279570","8911771","13280546","4961595","10553101","16420817","7266339","7233032","14626174","17907690","21114236","2160513","7590835","13167794","18766595","4084853","8856244","11956607","3360737","13047982","11566799","14099962","277044","1530308","2449200","6444766","20205897","23731514","11388710","15690480","34209594","26140861","10333739","30279494","12046267","18309106","10809497","12006280","2225008","24851743","7286896","16870002","7216115","427355","7673299","23091125","9267793","13431947","11734610","5001658","8933873","23783415","13151924","4702061","12055954","8369893","11817838","14066511","6857841","18278945","9557847","28686998","13385865","16696389","10036005","3525251","6694908","8610776","11313227","3603342","25379972","2820075","22157047","4544555","26228192","11885200","23833514","23890527","10229867","9427822","8884753","11659956","13170913","7918550","31023928","10465260","20040607","2039089","13572493","7968696","5818319","9502281","8468203","8039789","12345357","17131079","10817494","25850141","7794488","17308009","12418891","9188975","11107867","12169989","4726691","11585213","8271308","18867523","16124906","10353340","8725215","6209713","8369409","24465399","6423914","29606773","18478864","7746837","2653437","17640814","18496063","1654221","13471840","7771572","2970030","105511","28098890","13929448","10133496","3946113","18142679","31340937","18042127","11144363","30034604","10027302","18121419","21707228","3037469","4998501","16277321","6864656","23259732","30822230","12197593","13878539","24776314","18638952","32503792","5350761","12431407","13155751","23779738","12689667","14880391","15391485","17303433","6764101","18341280","8025443","7240849","15807665","16837177","9781014","15098503","7945868","12634361","9043661","4372604","3608278","4693052","18724987","23179367","2747704","17721427","18356454","16711124","9504954","13018117","9916104","27657112","14009758","14931745","2270126","24075447","23392961","10340462","11787977","2081126","10085090","15806513","13289287","21682880","29721533","5990313","15807199","8332881","13901048","18483399","1626983","20868243","12489832","10707444","4773855","7160872","13286526","4760676","14751007","17285510","13847712","17152485","8846778","11743223","13359872","27552902","26690747","19334327","20021208","12562107","18043326","7955249","32304607","10242770","14144601","4116072","4686520","3642440","28535456","4075092","17989209","17655626","2115269","13769101","11731209","8408784","33745274","16020685","19141228","25588443","16128842","26603694","12346181","15929931","14535598","16131837","22524841","33648815","33218299","118489","10284984","10483296","7602467","11624923","13288401","8094971","15482579","10236326","2163585","2281110","31138498","25558684","20496815","11488604","3918056","19659006","1948903","25426411","18566390","32253035","6392061","4414322","10906301","2940660","1482965","2284328","16923930","9760824","14799684","4866977","16505281","8534840","25682415","14454420","12052253","31948630","9238293","20951357","24224930","24026784","22725724","14714059","16562681","27313653","34060021","7227070","18943504","10629473","17237364","6577242","16427395","6699923","14003647","19223045","12261836","17385733","15079888","6505058","11149878","16108901","5235597","29065774","15513303","32909413","7676585","12871335","13171482","11799958","33328421","26820084","4700778","11937337","11341964","13975661","23237836","21819427","13333125","13125084","18267981","29024004","6912079","12599154","16447598","11480864","14004386","9602755","1031263","17241523","7095193","11144284","12796512","16918654","8837858","28917056","7335062","17036965","19744986","31706494","903155","16407268","26253851","9074982","12086252","24457999","10336332","34344384","18375016","24291557","23819962","8011881","4685756","12820563","11898245","14241467","6382544","10947900","17089357","13640336","24589727","1488878","16192531","26252846","23989702","9630674","24847256","4918394","11711666","7539957","3846874","12399822","19133938","20531318","12054898","25604245","8370443","8250228","10665336","2368630","25468030","10728432","623773","13945196","7490871","6384643","11400322","16371466","17535627","6188901","7439939","12904746","1385494","15543726","33386856","10318380","19686164","16566148","17289780","16018038","11976319","505137","11759693","11112775","32831399","17154483","1275168","23297156","14551764","21446926","23833099","10186414","33494281","24978350","8900975","23501956","23429747","11649450","18801040","8710290","27754735","26188903","14039549","18521083","15508957","31755778","8756421","8683297","10242297","13941662","15183087","33078224","15843206","9655624","20604942","13858581","12127515","11440539","22825158","22202849","20809032","14124854","9299072","13347579","14213383","14030362","16446375","3825901","18111392","13545528","16468962","15926730","32695517","17673611","15548876","15760722","18520056","31185655","6748142","20242876","9492940","15148238","3021168","19509414","9332478","23327830","5642989","1192936","24973011","15677134","9921804","22920375","20822831","31899950","8179131","7928981","3262821","8442734","19900854","34982060","11247298","23490205","9522312","10393606","12584420","12852613","32921636","34205111","28092788","7466406","7081478","13390529","11257774","21742758","10944966","3793502","14324153","4666773","23528661","22782597","15889644","18377298","17607162","10149312","16081867","4875530","23609936","25660423","4815930","25311011","27419503","17245290","25308131","27208738","12779064","16530364","9710653","19838492","32453617","22839620","27233308","16469072","29800037","32145505","14694998","31146692","8065567","10963351","14122291","11306153","25300387","5919873","10058835","11441915","14174524","3035476","27394972","18428953","17115114","31491582","23726452","18236316","10157813","18693260","34660779","25586931","13132585","16119061","11964257","3215366","2883132","29530752","8880797","14412562","23070586","23257092","14960876","28414124","16606499","6378892","17184474","24202059","24104574","25689815","20544648","14196373","29388371","25462042","13086972","31956722","14526718","7437049","16772030","20485400","18756838","17494164","5507069","11789635","4557440","14222982","32379983","17839143","22204699","23410931","22703533","14217379","28246172","9244686","14208094","12658750","10622472","24780565","6420368","17369785","20280819","29929002","17527822","8195584","19191509","9530019","20937526","22660023","13268178","15447708","315646","13402917","35807404","15832551","11183413","24449770","10804091","24495218","9164100","28635826","29207320","18884854","12084755","23200233","16768803","30870258","13356854","16480419","11067151","5730521","25345980","16191180","8359780","17252041","19805569","1517607","11454895","26103726","9787146","7621263","12290050","17213280","15727775","3995789","20298842","18563362","13858488","19554046","11888159","30122510","20834055","16312988","23291631","22928573","5063207","3244389","15444660","25263357","25914360","24598551","10352045","16889434","13320197","15216030","23651038","10316554","4339188","23185552","8599070","7909538","10224958","19571610","8005350","10702235","34241263","10608702","18528003","6576888","32579046","15555328","22644374","6522146","16886729","9006144","12112330","17609382","17203049","17091831","8243526","13571027","20455522","13072081","20040064","8597906","33740116","13310760","10478980","21933816","16564480","3620963","13250642","9401939","7304075","26007397","6814203","29900763","9841162","14212240","25672288","31369560","2790640","24259815","8594161","22674434","24548857","20286166","20600375","18280671","27874088","21876472","14137067","11799103","15636338","13370677","24449678","9951483","12712916","14178389","30495433","4937439","19474099","16410097","29772088","7712274","11088460","3155508","10205111","11974884","5125822","4039450","25175032","4334808","393151","4584427","4579132","3211471","2887427","4463653","14657937","6239231","5583547","4941954","23270755","2945775","9146978","8960210","2326280","28584677","4673274","10588504","7418493","21246619","3767034","8846660","10994117","9030389","6692990","2377299","15183294","1830782","3267187","25673755","13382711","11314928","7425288","3338246","12191753","11565198","4711397","28978690","15801489","19054404","5905433","11234166","6316524","3357640","30924602","7637292","8891462","4703702","10263725","7767023","11806077","2632902","9986313","2227497","4482419","13489144","16033308","1694466","31772644","7447943","2459792","3382720","5358977","8182717","2883808","15321849","15328093","2224333","2452290","4635891","1130069","10821468","6659363","15551523","9465458","6701473","7193443","4115819","13097231","6832275","3428856","21921071","6601834","24076646","7979303","13456157","16386610","2007579","4360793","18216254","7998596","5833349","30833471","2338266","7545341","1077387","16915683","4861005","3699565","16586663","6582163","4564681","13736437","9956510","3996828","11615217","17193424","14184528","3361548","1634052","9129934","10247148","6193819","9636937","9872668","2663742","15339238","14593851","10795920","2533696","4511278","4524098","14053380","32648806","1365535","18606972","3149395","3484485","1996789","9938020","4800021","9445045","12064488","4762349","8648492","9017396","28168805","23097320","8319503","30137002","1047996","1724045","3752338","4068921","8771860","6914714","15017771","3258791","2628070","6701104","10540368","14457189","7235613","2814282","7960969","22859747","7408055","2156362","11503117","3494742","8882838","5406526","10677044","9851968","9388217","4547744","34446270","18499093","9565276","23299675","19010565","2136262","8738085","11098035","4571150","6298898","2764122","6845568","12264218","4686148","4259923","21654601","25696729","9545163","29728416","11414465","10801533","28945230","3097314","11330927","2763581","19200007","2360046","12890081","9886570","6607946","2604254","10933158","9362562","1155258","17446728","8890291","5377091","24471447","662855","8728844","8382535","1815818","3756437","11584896","13695676","4459335","336252","4614296","10956103","4691146","1584198","14495376","1098340","1946317","3710507","1472659","7932310","820287","4261464","33133775","5277538","2052925","4064505","6539319","13115306","3855996","10439016","3104108","3009472","18797723","4221610","3057154","12999562","2945572","27834381","7806307","2053183","33344962","10081162","28943901","4802907","12096644","8624433","3751116","14453829","4923023","1277551","11782720","2227227","3996030","2534632","1084861","17502341","4610379","26237858","4715184","12601925","5678663","10176363","26406312","16466970","11818585","13653035","12471868","11737929","9014584","28444949","2163873","4107782","17906257","7430447","15440118","12907431","8062700","4869326","10287438","3187959","5223921","14614114","7519069","10913535","5129245","29355941","12707686","32288791","5948345","12278022","9727747","678178","24944545","8222416","933726","7097990","13951957","10759442","4319267","10450696","5394833","1594542","4492847","1932492","10138817","12696546","14204180","27209002","15492763","4983538","24806005","3359035","5246861","22574224","10874110","10144756","19306399","4729331","2540099","14797411","12660835","6751666","27640566","10192760","159221","3657863","1935034","15008945","13329275","8793725","13795161","4186386","7739106","24467134","23700738","6361877","10811914","8312152","2491043","2152366","10839432","6374084","9467027","10861024","6162342","17853754","12780575","7313950","2392534","748722","4907354","9620182","29627424","33338898","7697771","3342478","24540421","23685062","17871520","11817815","10190171","9284542","12341059","5132402","9409456","15501680","1160358","19532037","20987022","1980283","1570876","32304072","15452628","8108213","12642757","10530031","14552965","4725379","4212320","13689410","4900423","2025416","25277695","4439655","5054154","7931755","11281651","4793702","10684799","8539924","2878953","20169884","6310897","2782243","25468950","2617784","10579063","13710532","5468855","4580584","1984420","18078361","3251714","12163607","9907421","14111538","11544934","14304065","5629231","1957939","12681690","9656224","16311916","8480647","10244470","3120357","2651193","9982715","1831030","9512392","17126049","7222699","9522401","10137329","1994591","9629543","14125307","10918736","25749953","2541787","7894203","9343291","3605834","5238367","11817622","9653729","19882148","20056684","25297485","10795513","18778772","7859738","10353661","8134294","8017417","12119881","3657459","2119373","1112604","16314282","5045644","8530937","10442657","5710721","7261986","11417394","6750618","10553827","10193307","9128499","29017128","14095291","13384149","9656767","2903972","16511022","18576894","2228215","2193450","3344198","3212009","14729191","20466182","7651945","11131790","24372948","19156437","6812047","19991279","11954045","14438535","15306347","8198818","19142835","8029883","2364777","1163304","11942559","3562839","16764818","275736","6925368","17484397","2356248","6500478","23283608","13456630","30890781","5310455","2323907","14386290","8591891","3885604","2666002","3347178","4500830","29261450","2572487","240079","2458812","4681744","11603271","2779510","14157594","12275116","6290518","17050171","16978354","9759532","1749212","5376581","7312902","8665297","807091","8517344","7405208","7688476","8263560","1282989","12804103","2079069","3941631","10764424","7940987","6265983","15385054","3457622","10143865","9167658","984703","3133671","23115362","3617111","2471262","22386768","6297771","7169557","17957861","6661120","2124268","3704662","1355144","15860444","7423503","8624784","4431033","19221238","11594393","766778","2273082","18653425","5283712","15384931","14499206","11355203","15944305","16706212","4588696","729690","11985186","15317574","9552883","2757610","2683171","7228215","3147026","3181281","1190251","8431512","2846396","16226885","1987968","6344480","8440939","6801687","5294305","2668921","8705788","3726140","4212217","16738103","5767851","4381142","1320102","19619014","4820793","11478056","6997459","7505041","19030920","2468575","32348007","9441967","19506159","4545790","6807868","10124651","15776213","5424097","4877770","7082716","9290914","10409242","4819270","5415502","4751564","24757389","24253806","2503689","17324106","8552146","15399445","12304069","9782330","8501245","16531099","8334700","1967296","13939189","3602232","2880263","11628037","16078911","1576095","9772339","4565040","21243737","4624884","5229316","9308128","14598893","3131009","2631764","8850919","6785718","31054","8505454","26803399","4005610","5259743","1107006","4763040","4426908","4524256","1538685","2501081","643394","19644181","16992784","26887934","6964358","22841207","15329100","18018708","1287731","5289196","15080920","2403444","12694894","777487","13857689","2230443","11630545","16607634","4089441","9102190","9709135","6701169","15602033","17503181","2965476","9051347","11106874","2466485","4263770","6535376","9554391","8454236","28893698","17076305","11912607","12917829","30317687","4035206","10240950","24314040","13952802","10213428","2744858","6839722","17138871","11728636","12629443","13725543","8509272","8706527","2766029","12562897","4562400","2302569","15165677","15636932","12430518","13340203","7104147","16065189","7390433","6345596","8301758","8271442","917930","10927256","7044210","4221331","2760223","12314726","6815250","13122043","17258072","2420987","3840946","4213420","7447482","5336945","12705051","9701109","617742","12352246","25161373","7972439","12177388","14184193","6910951","25501276","12158505","15012640","23633474","9008042","14727263","1313590","15251676","17396688","15868314","3246713","4883397","2018091","13846359","21468049","4018645","18351033","367761","1936236","12208273","3295221","3078914","11261860","13254473","15471024","2243279","8720555","7846881","11611686","13328288","2225638","12353296","15479613","26297005","33399444","13046079","15756120","5741461","9020311","8499161","7842506","19433402","8253385","18389592","11968058","16379858","25261784","10909122","13710750","17244618","8875919","7715151","18081032","13031731","6965425","1487084","5066305","4876699","4059732","20037405","3518705","8944221","2375465","12243730","26696007","4556357","6674352","5413852","13500706","9721850","3497222","19478811","4493436","13659177","12358403","5105493","4556696","4485072","6705932","10805531","8916149","7702128","12279615","6959747","4155483","6096537","6420405","1965491","10938928","14737880","15889168","16512600","18834550","4295434","6176811","14927661","17050835","8472633","1325359","2178964","12170527","17382617","9130704","11470095","19500985","9966524","9138248","16680523","1409999","5927887","4942174","8678616","16009983","8614143","3799946","9554698","24289042","14225264","16468594","11539225","4158549","8172283","1830361","7547506","7226149","6492475","566276","17309439","3704228","12863098","7620002","2084568","9155988","2306637","4982799","3657951","829284","5220794","8403032","3438241","4691991","5351518","8928855","9484428","14571181","702598","2389481","7297777","3835436","3157472","7937519","3656717","186642","5502521","3970664","7180810","3171965","1177233","348467","741613","16352736","7024526","3396013","3427748","14254962","4327130","6069462","6201167","5490623","4365562","2111624","14056601","14275846","7326109","6926006","19953508","7300747","10552580","4974088","4741164","8525921","1927193","533210","1035891","18917363","16355636","6283136","5529199","5251714","1850067","14714724","11754842","4990320","6829103","5472877","9424481","22708842","6562920","7612994","1626093","3616480","7649169","10674528","7162114","3880553","1252928","11109479","11017055","7055384","4586304","3922569","20340480","11158870","18531265","1565036","4039895","13845399","7178386","25723773","11635773","6221114","13111206","1872276","7143968","30511396","10681880","3749666","6109660","8800023","10769450","12740132","1361268","1272422","2754651","7931526","7551572","489271","2451381","12588215","6050530","4964095","18171621","3097304","4174308","2107017","9519851","20424806","2957534","5960935","1311496","3243148","16102533","2407347","12189647","214187","4624693","6524765","11390632","2205929","1170156","19490380","3222638","22136262","32442896","5030297","10415976","4067115","10516547","2568961","7592136","4997316","4447639","14329375","8434466","8805157","11286034","5302804","11762423","2756781","19515018","3856673","636114","2872000","7161836","8642224","4958376","3821475","4434640","17578266","8417087","6376151","4382076","5124924","17130789","4430811","10727985","13776127","4564521","17738253","3555626","5477873","11534285","3834323","26695963","4238448","7941971","3313041","12256216","1237535","9718235","11056733","1749173","10218998","1808057","17405762","6477025","16669841","5097844","12498861","6583168","15389158","13978275","6856387","14169441","2253026","6488167","2455926","4479729","2667256","6434318","2165558","2693723","4744367","5235352","10835397","2331531","24092731","23941998","7332050","3093873","1226238","3072921","16756763","1629471","29847781","5257769","2931883","1840467","11660900","2956936","5166056","4744615","15558360","14744799","1250096","7855767","5052507","9814770","7474404","29332947","4138746","6264535","1260040","7934854","1089040","8846762","4795737","13194580","2145160","2213572","20750658","14075389","5400828","2115337","3123719","1916847","10663877","3355617","6177263","15923034","11388689","883939","15274666","4533507","9200197","5586377","3743985","8417565","9114235","6061811","10287019","10742890","4452911","12537441","4586766","23525574","12182399","18818124","1948043","1162516","5818665","14235333","4595355","19851602","9740698","1552429","1338103","9019507","10378635","12584928","11152298","3962365","985360","8673833","7811952","6829347","10597843","7262352","12588486","14522883","1957752","2055184","4786306","4400693","15960747","14057792","7385701","3416858","14174873","4316266","3809967","10161144","2819676","3845678","4864877","2086828","7998028","9407594","4928846","9461160","448547","9610211","8701106","8738261","4318775","4222176","6590854","5835067","8611935","7828945","989542","2624179","5063961","12367442","1264755","23680566","6736420","1375955","1942877","3546931","19476018","9087831","12004983","18660354","3080727","2788013","3027065","26637518","24345309","3770603","5297904","11393244","318565","4202284","5928207","12331683","16782179","5071280","18336339","8301609","2760954","14100384","4224529","1595221","16552460","14917517","3692648","2552435","16579711","8579779","7369828","10920086","853694","9870318","7289244","1449322","7946084","485474","14318796","3398762","8134297","10043310","810070","10457920","14613788","9482697","11735313","17630607","1784164","285756","9630769","8291465","5951283","1688325","6564824","8298541","7329917","1700008","1396447","6403418","18076539","6144467","12410693","2904705","5238162","20136125","2933135","5464437","5013425","4480237","9170129","10496305","1391036","2390992","3400701","6649605","18468376","10886499","23006180","7938389","4316542","4219372","7926192","6437591","2799946","13956591","16268256","13916330","3515458","6829111","4818935","3164010","2538257","2400918","4223607","2213794","17021268","2427813","6556054","2349221","10454575","13596084","17745759","2565109","788406","9489602","4599191","15273403","8154659","16493863","1011240","9434933","1599349","9332097","15868630","6347308","8811229","9027099","4023183","3163012","24524181","8383804","1847850","12131006","4229240","11973153","5398106","20232838","10605929","10755079","15074740","2026299","8772708","1936711","4133477","4115635","12203613","2052986","6061501","5635563","2317102","3306180","2022144","4100941","1929450","2573707","4339778","6049302","25880514","4046640","6575915","14095299","3622412","31348648","6345176","9784522","1619007","10419790","9626549","2996241","20409063","14685908","4319655","1894511","21138904","10863802","10193706","4787989","17838855","11324794","1459769","7155262","12123746","8299277","1686145","6045522","11548062","10095644","4144266","7971842","3212806","13610668","4915649","3359485","13962882","6443263","8668722","8403862","605088","1952803","4266634","4892798","9402159","25198181","9926856","1169796","6583340","8348072","8687353","4568537","9629190","4994598","3636998","4618171","7720945","1101600","6960376","5927823","16294034","5163523","12467500","3908087","15489757","3414261","16932505","7890134","10309451","18569771","4890687","2077521","1616974","1974131","3204086","6438262","10278890","29405408","2150415","7496029","2958293","13854","9738159","12382410","15015592","9966768","11176520","3619875","5219553","1513301","6403823","19471527","33275536","2815946","3006672","3880845","6416920","7689992","5095790","9137627","33305106","14278708","3784334","10760717","23381622","7320075","4405764","3673417","12708243","1465947","518503","8329151","19391812","4151397","4949021","2344040","18882652","6423123","19781424","723623","1254639","588046","1913190","5308080","4277070","2367959","559308","4146243","13966422","1866048","4607073","10491951","12036156","7293491","8062855","3031177","8146190","6739378","2673742","4586549","12465980","5034270","11202866","14489248","4220829","5122949","2312572","9988837","5032045","17458994","1643335","6083491","26377086","10286499","2351567","11382428","2022158","10334943","19611177","9901244","5375171","5253610","3996466","13240976","20085430","8412101","7699172","12249595","5102624","6650048","10696269","3035276","8710703","643160","8353249","9504653","4372552","2241910","4028740","5169874","15208771","25574167","2417394","524489","4446007","3536352","2322189","16301262","9421873","6368527","6341006","4350087","2212951","1691809","1871745","6803892","3320300","7658884","29824043","3971190","13929270","15681946","10557830","2804545","31885496","6811767","14599677","11239593","4169930","6937487","9553853","9799927","6336713","8477520","31154914","3247173","11246834","5220511","2392087","14786379","3263646","1360885","3538446","4050223","8224668","13645370","11899441","6565081","9874807","1985428","6567640","4642193","11994066","8822027","12441210","6572786","10702118","7740655","4011799","4383265","2512267","4284567","230946","3122557","7749445","8647138","2459589","14889628","2353850","13602706","1863017","12735053","11608122","4284008","12090552","25690654","1049467","697659","3770612","10281149","23522188","14277249","7732574","5126518","18014473","13348163","4937690","22329458","23961214","2823883","8422828","11694783","13451333","10177249","4948274","1302259","8623922","2888013","27189281","13951464","207916","7293637","4215343","13460592","17819541","4013465","8177073","4427038","330764","8312428","25115746","21973607","1555865","10698188","8922468","8661271","10937890","4879508","14549465","11513377","8140944","18516579","14581544","10792711","3805080","11917325","8408065","3656798","11414445","7034422","3788536","870978","4485933","3594510","13005571","4632730","6283052","5404711","3221898","7642326","14495805","14990237","235618","4080520","3313680","1839650","11792387","6672736","4585260","25029674","4670692","7213330","4778689","24422146","6237768","17154677","6316919","4363530","2569786","8880995","13055705","10291253","7616811","7345342","21227757","2535016","10445862","20969950","8922653","3716061","6056288","129806","7578195","8283671","4642937","3240418","4538783","6689101","2407265","16196079","10253322","4147020","8673115","6097002","10267005","7143202","18226127","16253321","7574093","18324015","8923804","9852829","1600437","9414526","9900841","9820706","2173232","11595139","2441896","1096240","7470906","3817153","28222","13917463","9610569","7802293","3981222","10491522","34606048","2103365","3768185","1698729","6233826","12572192","21143663","15227144","5439894","3957481","3606568","7803396","1800103","2054788","8061081","5022932","1917940","8062334","13359774","4278969","9567794","4841753","9898151","3299660","19249388","6377687","4402757","1380645","22005940","6708316","8630988","7330584","7124984","9872908","3498251","14346039","6925410","9239206","803484","4598862","1502415","15334170","2488026","21276218","5051425","9888039","17314832","4682813","2861255","261497","7587447","3664478","8868701","2900145","19490792","2874208","5334542","3807986","4948624","836180","15017397","107553","1929336","6053071","2257452","13883562","1957638","1937045","30653081","4808804","1888948","4839807","9291687","11913197","9089150","12866104","2808770","9826339","6472019","2159777","6322027","9740073","9677924","1806962","11716047","11626462","4754917","9120377","1637680","13279756","538717","10826368","4297805","869471","7552274","5261202","4577865","5070783","3774554","14477534","7254597","368023","253015","963369","653016","3672635","9096327","452809","158240","19874742","1505264","4140062","11643230","564334","806606","8805840","881667","1218645","4035950","260373","13136479","2953898","707456","5184534","2390468","3703888","2667359","2233099","1712811","822126","6909645","4607945","3895614","3457947","824731","9475990","11257046","4075694","9521509","6205809","2282499","4099041","625893","4576970","3148095","290249","3294152","723787","12217903","199136","367756","5416487","137620","5114498","2377692","2717458","904219","1587968","2503365","92457","1352395","8084995","47842","4022685","1725945","2035091","10694221","8511247","430337","792196","16030914","1642435","671320","3406297","3580684","5994353","646919","3358261","23326745","1668043","4644377","14890808","524235","854572","4312036","233667","1298335","1352257","686182","1126814","2326688","318357","571973","5159715","3811654","24032082","8406711","32920228","404314","3300147","2024185","33131523","4407415","10959112","3115050","1154220","4209402","17411159","1948810","3473334","19963096","578027","3993044","4738268","5018504","1537651","16935822","2002137","1327642","423704","7094470","11807319","993495","8437630","116389","1090858","952068","872511","626677","3464898","1127729","3087045","16680343","1830213","635485","3862939","9025855","563262","6677142","6704228","2789905","2117816","4803872","1170107","811764","10881728","158552","2347893","14314269","14797422","8384680","4169363","4101818","799561","3479995","598204","4585297","686214","2194368","9153772","1402808","6947412","13214067","123976","3093378","1343670","8030014","3628521","3511421","1069171","9006338","5046521","1637716","1767102","3325166","434914","1501974","1350613","4625004","349027","1627110","2600197","19129594","1029152","14696819","3600162","8189440","277771","4871211","4046898","21105275","2373553","1953165","6809065","2363941","2107523","1978891","9289831","515623","213961","1074710","189617","1577171","294277","1267642","1292577","4316063","12203176","1915210","3932463","11985424","8812651","6715645","1959675","3917717","14476098","14121250","480676","2121242","660484","1746123","1123320","1531822","330375","258289","7735859","1435230","895005","17952050","13104075","87482","4093627","1077263","10959550","260933","772375","1417268","3507709","326099","728934","2128050","1286079","188339","16949540","17385454","1123309","227755","2595912","4417929","972778","2514107","471169","1016926","10494963","9851266","13655523","1251439","6830073","795915","259834","4785841","3434077","4679411","886675","4027910","2648029","1637981","2535200","1690328","609627","426226","4299146","596063","9260926","2607477","4470724","206314","1915425","1403709","3181907","2108612","1689403","3886013","2548278","1082617","2836648","1804270","6702491","11983416","14430872","11774124","615027","103583","1296953","2985335","1124392","3112563","4571241","2103674","699495","1740102","1262919","704369","11497549","721440","849833","3759216","16048302","4350256","4620814","23892284","795612","5005402","229191","706550","7258250","8791862","4297816","7120867","4181010","2984583","144341","14042059","2466879","4280307","5180124","2107062","1110368","628780","4821224","645486","4237255","11431902","150672","1199087","14505221","29503627","4245227","1993041","531253","203721","11492559","2001416","11140431","2154102","11961039","948847","6013277","5420059","2199555","13265365","8270962","3289301","2000923","6655145","926745","1931562","1882578","2469975","2857496","66001","2342051","5118443","8265751","1301610","12915290","1942355","1225403","1772181","357881","1288958","16492252","550473","4218932","9118383","709826","13641585","326049","278862","5392358","3066582","2015395","4261579","12561637","2556820","1160340","10848421","12195405","2341336","5144295","10480084","4137039","123938","7014993","2108054","1559927","660504","1238294","2697988","1139705","8387373" - }; - - var added = 0; - for (var index = 0; index < users.Length; index++) - { - var user = users[index]; - try - { - var id = int.Parse(user); - - var existingUser = await _databaseContext.Users.FindAsync(id); - if (existingUser is null) - { - var osuUser = await _osuApiDataService.GetUser(id); - await Task.Delay(1000); - if (osuUser == null) - { - continue; - } - - var newUser = _mapper.Map(osuUser); - newUser.CreatedAt = DateTime.UtcNow; - - await _databaseContext.Users.AddAsync(newUser); - - added++; - } - else - { - var hasRelations = await _databaseContext.Relations.AnyAsync(x => x.FromId == id); - if (!hasRelations && existingUser.FollowerCount <= 0) - { - var osuUser = await _osuApiDataService.GetUser(id); - await Task.Delay(1000); - if (osuUser == null) - { - continue; - } - - existingUser.Username = osuUser.Username; - existingUser.CountryCode = osuUser.CountryCode; - existingUser.FollowerCount = osuUser.FollowerCount; - existingUser.Title = osuUser.Title; - existingUser.Rank = osuUser.Statistics?.GlobalRank; - existingUser.UpdatedAt = DateTime.UtcNow; - - _databaseContext.Users.Update(existingUser); - - added++; - } - } - - if (added > 100) - { - _logger.Log(LogLevel.Information, "Populate job: saving 100 ({Index}/{Total}) users...", index, users.Length); - await _databaseContext.SaveChangesAsync(); - - added = 0; - } - } - catch (Exception e) - { - _logger.Log(LogLevel.Error, e, "Populate job: exception {e}!", e.ToString()); - } - } - - _logger.Log(LogLevel.Information, $"Populate job: saving remainder..."); - await _databaseContext.SaveChangesAsync(); - - _logger.Log(LogLevel.Information, "Populate job: finished!"); - } - } -} diff --git a/backend/Mutualify/Jobs/UserRelationsUpdateJob.cs b/backend/Mutualify/Jobs/UserRelationsUpdateJob.cs index e935302..cb3a4b0 100644 --- a/backend/Mutualify/Jobs/UserRelationsUpdateJob.cs +++ b/backend/Mutualify/Jobs/UserRelationsUpdateJob.cs @@ -14,7 +14,7 @@ public class UserRelationsUpdateJob : IUserRelationsUpdateJob private readonly IRelationsService _relationsService; private readonly ILogger _logger; - private const int _interval = 3; // seconds + private const int _interval = 2; // seconds private static bool _isRunning = false; private static DateTime _lastStartDate; @@ -81,9 +81,9 @@ public async Task Run(PerformContext context, CancellationToken token) } catch (DbUpdateConcurrencyException) { } // don't fail on HttpRequestExceptions or DbUpdateConcurrencyException, just keep going catch (HttpRequestException) { } - catch (OperationCanceledException) + catch (OperationCanceledException ex) { - _logger.LogWarning("[{JobId}] User relations update job has been cancelled!", jobId); + _logger.LogWarning(ex, "[{JobId}] User relations update job has been cancelled!", jobId); _isRunning = false; return; diff --git a/backend/Mutualify/Jobs/UserUpdateJob.cs b/backend/Mutualify/Jobs/UserUpdateJob.cs index 6f7932e..92a4c9b 100644 --- a/backend/Mutualify/Jobs/UserUpdateJob.cs +++ b/backend/Mutualify/Jobs/UserUpdateJob.cs @@ -86,9 +86,9 @@ public async Task Run(PerformContext context, CancellationToken token) } catch (DbUpdateConcurrencyException) { } // don't fail on HttpRequestExceptions or DbUpdateConcurrencyException, just keep going catch (HttpRequestException) { } - catch (OperationCanceledException) + catch (OperationCanceledException ex) { - _logger.LogWarning("[{JobId}] User update job has been cancelled!", jobId); + _logger.LogWarning(ex, "[{JobId}] User update job has been cancelled!", jobId); _isRunning = false; return; diff --git a/backend/Mutualify/Program.cs b/backend/Mutualify/Program.cs index 5c253cd..0256c94 100644 --- a/backend/Mutualify/Program.cs +++ b/backend/Mutualify/Program.cs @@ -2,7 +2,6 @@ using FastExpressionCompiler; using Hangfire; using Hangfire.PostgreSql; -using Hangfire.PostgreSql.Factories; using Mapster; using MapsterMapper; using Microsoft.AspNetCore.Authentication; @@ -130,7 +129,6 @@ static Task UnauthorizedRedirect(RedirectContext co builder.Services.AddTransient(); builder.Services.AddTransient(); -builder.Services.AddTransient(); builder.Services.AddTransient(); builder.Services.AddControllers().AddNewtonsoftJson(options => @@ -242,7 +240,6 @@ static Task UnauthorizedRedirect(RedirectContext co RecurringJob.AddOrUpdate("users-update", x => x.Run(null!, CancellationToken.None), Cron.Daily()); RecurringJob.AddOrUpdate("users-update-all", x => x.Run(null!, CancellationToken.None), Cron.Monthly(3)); - //BackgroundJob.Enqueue(x => x.Run(null!, JobCancellationToken.Null)); } try