From 3e3abdc811c73ffe5fa1ce76888c7b53bb19ca71 Mon Sep 17 00:00:00 2001 From: "github-classroom[bot]" <66690702+github-classroom[bot]@users.noreply.github.com> Date: Mon, 8 Dec 2025 21:33:23 +0000 Subject: [PATCH 1/7] Setting up GitHub Classroom Feedback From 59c1db6d2d164186a20acb10258da9a4b522eaba Mon Sep 17 00:00:00 2001 From: "github-classroom[bot]" <66690702+github-classroom[bot]@users.noreply.github.com> Date: Mon, 8 Dec 2025 21:33:26 +0000 Subject: [PATCH 2/7] add deadline --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 97f8c85..98999e5 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,4 @@ +[![Review Assignment Due Date](https://classroom.github.com/assets/deadline-readme-button-22041afd0340ce965d47ae6ef1cefeee28c7c493a6346c4f15d667ab976d596c.svg)](https://classroom.github.com/a/QODoQuhO) # Распределенная обработка текстовых данных с использованием брокера сообщений ## Цель задания: From cdf26202bf14591f22f559b35d3c5527dc02063b Mon Sep 17 00:00:00 2001 From: khaser Date: Wed, 10 Dec 2025 00:08:50 +0300 Subject: [PATCH 3/7] First implementation --- .gitignore | 45 + .gradle/8.4/checksums/checksums.lock | Bin 17 -> 0 bytes .gradle/8.4/checksums/md5-checksums.bin | Bin 18597 -> 0 bytes .gradle/8.4/checksums/sha1-checksums.bin | Bin 21305 -> 0 bytes .../dependencies-accessors.lock | Bin 17 -> 0 bytes .../8.4/dependencies-accessors/gc.properties | 0 .../8.4/executionHistory/executionHistory.bin | Bin 19607 -> 0 bytes .../executionHistory/executionHistory.lock | Bin 17 -> 0 bytes .gradle/8.4/fileChanges/last-build.bin | Bin 1 -> 0 bytes .gradle/8.4/fileHashes/fileHashes.bin | Bin 18747 -> 0 bytes .gradle/8.4/fileHashes/fileHashes.lock | Bin 17 -> 0 bytes .../8.4/fileHashes/resourceHashesCache.bin | Bin 18531 -> 0 bytes .gradle/8.4/gc.properties | 0 .../buildOutputCleanup.lock | Bin 17 -> 0 bytes .gradle/buildOutputCleanup/cache.properties | 2 - .gradle/buildOutputCleanup/outputFiles.bin | Bin 19073 -> 0 bytes .gradle/file-system.probe | Bin 8 -> 0 bytes .gradle/vcs-1/gc.properties | 0 build.gradle.kts | 13 +- data/Herbert Frank - Dune.txt | 16708 ++++++++++++++++ src/main/java/Broker.java | 30 + src/main/java/Main.java | 22 +- src/main/java/Producer.java | 50 + src/main/java/Result.java | 69 + src/main/java/ResultChannel.java | 32 + src/main/java/ResultsCollector.java | 60 + src/main/java/Task.java | 48 + src/main/java/TaskChannel.java | 31 + src/main/java/WorkerPool.java | 76 + start-rabbimq-server.sh | 5 + 30 files changed, 17178 insertions(+), 13 deletions(-) create mode 100644 .gitignore delete mode 100644 .gradle/8.4/checksums/checksums.lock delete mode 100644 .gradle/8.4/checksums/md5-checksums.bin delete mode 100644 .gradle/8.4/checksums/sha1-checksums.bin delete mode 100644 .gradle/8.4/dependencies-accessors/dependencies-accessors.lock delete mode 100644 .gradle/8.4/dependencies-accessors/gc.properties delete mode 100644 .gradle/8.4/executionHistory/executionHistory.bin delete mode 100644 .gradle/8.4/executionHistory/executionHistory.lock delete mode 100644 .gradle/8.4/fileChanges/last-build.bin delete mode 100644 .gradle/8.4/fileHashes/fileHashes.bin delete mode 100644 .gradle/8.4/fileHashes/fileHashes.lock delete mode 100644 .gradle/8.4/fileHashes/resourceHashesCache.bin delete mode 100644 .gradle/8.4/gc.properties delete mode 100644 .gradle/buildOutputCleanup/buildOutputCleanup.lock delete mode 100644 .gradle/buildOutputCleanup/cache.properties delete mode 100644 .gradle/buildOutputCleanup/outputFiles.bin delete mode 100644 .gradle/file-system.probe delete mode 100644 .gradle/vcs-1/gc.properties create mode 100644 data/Herbert Frank - Dune.txt create mode 100644 src/main/java/Broker.java create mode 100644 src/main/java/Producer.java create mode 100644 src/main/java/Result.java create mode 100644 src/main/java/ResultChannel.java create mode 100644 src/main/java/ResultsCollector.java create mode 100644 src/main/java/Task.java create mode 100644 src/main/java/TaskChannel.java create mode 100644 src/main/java/WorkerPool.java create mode 100755 start-rabbimq-server.sh diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..8c7c9dc --- /dev/null +++ b/.gitignore @@ -0,0 +1,45 @@ +rabbitmq-db/ +rabbitmq-logs + +.gradle +build/ +!gradle/wrapper/gradle-wrapper.jar +!**/src/main/**/build/ +!**/src/test/**/build/ + +### IntelliJ IDEA ### +.idea/modules.xml +.idea/jarRepositories.xml +.idea/compiler.xml +.idea/libraries/ +*.iws +*.iml +*.ipr +out/ +!**/src/main/**/out/ +!**/src/test/**/out/ + +### Eclipse ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache +bin/ +!**/src/main/**/bin/ +!**/src/test/**/bin/ + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ + +### VS Code ### +.vscode/ + +### Mac OS ### +.DS_Store diff --git a/.gradle/8.4/checksums/checksums.lock b/.gradle/8.4/checksums/checksums.lock deleted file mode 100644 index b01eae26ceeb6ce3aecfed8895d5499faa4d159d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17 UcmZSH*cj4lb6?~<0|ZzB05ehqPXGV_ diff --git a/.gradle/8.4/checksums/md5-checksums.bin b/.gradle/8.4/checksums/md5-checksums.bin deleted file mode 100644 index 1cf5320b892fe9573559db0ea50b42eb56e9fe86..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18597 zcmeI%u}VWR6adipz(Fgv3Su2yM5U-;K^KeFHz#%^DpnyqxB>@LQ&-yJj6?Lp&p ZZ)bMveSNn(v0QXaKb#(=j`5SC;|H57JI??B diff --git a/.gradle/8.4/checksums/sha1-checksums.bin b/.gradle/8.4/checksums/sha1-checksums.bin deleted file mode 100644 index d8e573f6fc3bfde6debcc96f35e3a8b57dd7b897..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21305 zcmeI3dr(wW9LMjnNG7l#s30#90TWR{9+Ii8K=Ni;&|ENO*)VWXFjSz#M;eJFXo}co zAc%{ilJPJ`o&ssICXbOYED(ke@R5L0sg&Kjzk9M__x#si&ABt|-udkL?q|<;&o0bx zk0(VL>%U+R>g6%@ z0nz|z;Q!LVDtaQ5U^2$`8qA4aB1Jjq&?n9rvebn}H(OqVhXow;|AU;0uhW-xSUv>q zdj#>^HRTZ^kx4J`08_;C%HN$8W-QiX$FD{FT)nhxVE69Bz=it}zYsgSF7exg9N_+a zh?i{;*=YLk27m|8MZD6az0rEff(YO~DTvn|q;}fB<6y_~>4;x8ny$UZ!_yDAcOv2q z=8iQ}n(X6%3pxfroGrZxY82 z-oGeK0Pfp}_|4!7Y1AHDwg>+Uh~NEXrLWBEMGgD>wTR!_q4|DPX)){d%R~Hu-OMJd z&Q=+W_xC`2)Xm)C{Juj5x7Y*#P3qFSUgz5#cjY+Gb zVSMln#I*`qYo=FK7X$a5jktE(Kt{{z`|P?3obwMK*>qxJcG6EUKJX~wywc=Z7Hz*C z0UlJ0_>{_L&)at{76JEjLENZdIpuoI+Z?#}a>UI-tfRe?CEoz|*G1gY#p+&Js%R}c zz6f#KMODf2j(!{9K9z{i`wc-jpUtfe@xO`GATHPc`g7E?S&;v^r59#C!KwiP-5C46d-oz9BwP{Jb}{8CjQ0^B zzS4c$@JO<&8F0T_h_9M`=dk#9*)4YbFyf(MyOw(WF3SZT^cLc4Cx`kOXxKRb54?`J zq{Q>&=-|Pd!vgzYnEJK|ef71oMr4e9Ljha;Y_ zwRGcM0nz|zfHXiFAPtZPNCTt+(g10IG(Z|44Uh&%1Ec}c0BL|U@c(GQiJrzh z`iHsb)@F)*=HM%))$wQMx@{>Hw{)F&i`yDcQJjqW3g=}oUyVHae&K(S;+tIIIiGd) zEclrhxFNJIw4S@1zT%jZesV*|A#hoYsk$&J`W3D_i%-@3tgw~N{Y&1RcAWn(%wf1C zC-x|~Rr@O8WMEyi@pVy_z|S+n5(|WxiBfl)rC*Jo;EGWz<|GO$kjM-wB71Z{VrLn(j}EU zL+Tl`nP!{|lcHUbuj5nE<(L0Re^_uk;LeUqEh%xaf{Ya@KV zC=-2E7bZo!qP&$ZwW%L>rG)BC?ftPzb8u>5__-XzH+r@!UD6ZX%G4>@3RM>-MZ2O+ z@TuMN2O<`y*_X`l{ZLpJ_g%n86Y}HNXigEpdPdUv$_T~Cs{`|tPtj;_$_*h?e&v9FD zof(3ZEL+uuNzty2oAIfXOPpdwjN&OLH7jR^MsIv$bMJ9*oo2q9=;KroeKT$yVp5C? zJ}GKb**CO2Jh;O4Z4-IxOL+@^5>HMK09Rp^QbomIRCQrev}+T)uTNd-4u4WsN|Mma z_tLx?Zr9A31CH~bgX?SwxVC?y>cXUGS1b>o;$LdmaUeo4DSTf=d3vrQInmsZ`P(Lg zckW#SWs2MHsOrL{>MP=4f2P{h;l(LV_Ih@U`lD`NS(>Cb!}zpe0qc4PUf~3>stcE* zUF=>&b*bNaE@qYFU2fhi=LVPWTluzbcJ2q@ipo^Fv<;Z=k8x`Qm!e&_|DF09$ykk# diff --git a/.gradle/8.4/dependencies-accessors/dependencies-accessors.lock b/.gradle/8.4/dependencies-accessors/dependencies-accessors.lock deleted file mode 100644 index c09e6733b2338c9b970a1451e83e3ce7ea36cb7b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17 TcmZRcCF=d?gr1rR0~7!NC_MuZ diff --git a/.gradle/8.4/dependencies-accessors/gc.properties b/.gradle/8.4/dependencies-accessors/gc.properties deleted file mode 100644 index e69de29..0000000 diff --git a/.gradle/8.4/executionHistory/executionHistory.bin b/.gradle/8.4/executionHistory/executionHistory.bin deleted file mode 100644 index 55165405ec69e2993366af16ebbb8c3193fb6a1e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19607 zcmeI%PiWIn90%~1w#X309-IhzbN+Y9)^=STDmq);bpB!8)PoRSlQ;9aw23cigPuGL z6gM^%bc!N^;6d>p$nY}pCf*eEDxO3^5K#~6LDQyX6+9I5Ao2|)dF18&e((3`d$}}C z$kOPK+Ck=y*10BH5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SNpr0>geG^MhiR zZU|Kxi#$R)7WfURLtAzzwD88&pu2Bd{r`jd-G9C|=))BP5P$##AOHafKmY;|fB*y_ z009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_0D*r&AWleR zkAG$==jCHLGtUyqZjm3+%@I46^l}Buqdd=pxk@wSt|gAhM+DVPCR3ZsE_Fs7*%Q>Z znUD_#cQws4OHh~TQG5E!bwhud>KV^0|LS(#3;l5f@iS`^X%E!4q89X|`gyR#1$Na9TB6B@U zj1KVvvr2A+kk!$PWomNWUuTUo@{>y>GLfUMW&}$_x~Ujefhot!Oep<2qx*%GXPWCM zCe5kwT7FOVhmh#1qs5M=uh-1mJTSI))A_~UzubRw{(a|zC6QBkDt2&_Nspyw!YTEi zyjER(i}+DUbn>t};jMf2`qpLR)8g>k%=0^yB=0_kBU84p{GH@-=2VkC`J-fW!ANw& z>Fmkx_xobgA6{JwwX7Kqa(Um1_)pS05yaJYybcN diff --git a/.gradle/8.4/fileChanges/last-build.bin b/.gradle/8.4/fileChanges/last-build.bin deleted file mode 100644 index f76dd238ade08917e6712764a16a22005a50573d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1 IcmZPo000310RR91 diff --git a/.gradle/8.4/fileHashes/fileHashes.bin b/.gradle/8.4/fileHashes/fileHashes.bin deleted file mode 100644 index 7d9de1c3a812b6b1369327daf440d51bf896f55a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18747 zcmeI(Pbh-zNc2w^dPYM1!A%s)d$ z2q1s}0tg_000IagfB*srAb&w8==Ij#d;es*;Z|Gk*6W^E(?jT4 z^l9}wy{`9aeNoPFM*sl?5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|00D->Cc$TAA4mYHYgL>r_zLDX=ovT;AxA!q&5uIHuXn^;vRZJ z5QJ#mu-jF|s=EODW0IS?71+B)cgSB3Mj( E0gW$|JOBUy diff --git a/.gradle/8.4/fileHashes/fileHashes.lock b/.gradle/8.4/fileHashes/fileHashes.lock deleted file mode 100644 index 1c30060c68f25f0d7932ded2a89920790fab263b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17 UcmZR!Ha(!f_C&^91_Px# diff --git a/.gradle/8.4/fileHashes/resourceHashesCache.bin b/.gradle/8.4/fileHashes/resourceHashesCache.bin deleted file mode 100644 index ea5df033274bc18e5071c03b8093eb650e9c064a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18531 zcmeI%F$+Oa6ae6hP0BN5|ky!-{}J9X|o zowMBYt#=$kn&h7d-)MhJ6#)VS2oNAZfB*pk1PBlyK!5-N0t5&UAn-2&v$#mTSSIaP z-$ipD!k`h0%5!+D$)3R01p1KQppP+uj5ZWU~CNlZ_YU&=xC4c!j#~|xw1@%siyD|L3 zY2|ZnQuh{bX;bM(&hkE+`h(L&C2tFQ!hB8!b>HzbRd&VQRMtfs^_~wtOEi0DKkotR z{Z6koI99oh_h_OAJUcopQ_op9S*gEvWEl}}Z>Bz8X4rS%GnLExI_gnndDr*R@h5yvJN2B$r?OmX^+(pthp6iX)4?YF@Fd?~ zNqzaoPqp^2`W5eMsIORJDD4h5-{x})6a83SuB&U|DC^>7>c-aVN>|vL#`l*|U;8e{ zsVd4p%;#^WE=JNr^