スラックのフリーランスサイトを監視する

この記事では、無料で入手できる新しいJob Freelance Scannerプラットフォームについてお話します。 新しいプロジェクトを検索する際、適切なオファーが利用可能かどうかサイトのフリーランスを監視する必要がある場合があります。 これにより、さまざまなサイトでの検索、適切なキーワードの検索、重複の排除など、多くの問題が発生します。これには時間がかかります。 さらに、この文を読んだかどうかを覚えておく必要があります。 オンライン中に1つのツールでこれを監視すると便利です。



当社は統合ソリューションの開発に従事しており、この分野での提案を定期的に見つける必要があります。 したがって、タスクが形成されました。大規模なサイトからの仕事のオファーを監視するためのプラットフォームを開発することです。 プラットフォームは、いくつかのキーワードを含むオファーを追跡し、それらをスラックチャンネルで公開する必要があります。



アプリケーションを実装してローカルで実行した後、コミュニティに公開し、使用のための無料アクセスを提供し、ソースを公開することにしました。 その結果、ジョブフリーランススキャナープラットフォームを紹介します。



特徴



Job Freelance Scannerは、Leadex Systemsが開発した大規模なグローバルジョブサイトからの求人を監視するためのプラットフォームです。 このプラットフォームを使用すると、次のようなサイトから通信チャネル(Slack)への単一のストリームでオファーを受信できます。





新しい求人に関するメッセージは公開後できるだけ早く受信されます。これにより、新しい提案を監視し、最初の提案の1つに応答できます。 スラックチャネルでの求人メッセージの例:











カスタマイズ



プラットフォームの使用を開始するには、以下を行う必要があります。





建築



この問題を解決するために、次のアーキテクチャが開発されました。一定期間後、内部APIを使用して、目的のサイトからの求人をキーワードで検索します。 既に公開され、署名済みの顧客に送信されているものを除外します。









凡例:









図からわかるように、プロジェクトはいくつかの独立したモジュールで構成されています。 アプリケーションモジュール間で通信するために、Apache ActiveMQはメッセージブローカーとして使用され、MongoDBはクライアント設定を保存します。 Apache Camelは、ソリューションのモジュールを統合するために使用されます。



Apache Camelを使用したSlackとActiveMQの統合例



求人をSlackのメッセージに変換し、Apache Camelのslackコンポーネントの統合を使用して送信するモジュールを詳しく見てみましょう。 このコンポーネントは、Java DSLで説明されているルートに基づいています。



from("activemq:queue://" + activemqQueue + "?username=" + activemqUser + "&password=" + activemqPass + "&disableReplyTo=true") .process(jsonToPojoProcessor) .process(aggregateJobProcessor) .split(body()) .process(jobToSlackMessageProcessor) .to("direct:slackOutput"); from("direct:slackOutput") .recipientList(simple("slack:#${header.uri}"));
      
      





ルートは、メッセージ転送ルートの説明です。 このようなルートの特性は、トークン(この例ではActiveMQのコンポーネント)で示される開始点と、トークン(スラックのコンポーネント)で示される終了点です。 Apache Camelは、統合用のさまざまなコンポーネントを提供します(詳細なリストはcamel.apache.org/componentsを参照)。



activemqコンポーネントは、文字列URIを使用して構成されます。 この場合、この行は、設定ファイルで指定されたパラメーターを挿入することでコンパイルされます。 受信した文字列URIの例を考えてみましょう。



 from("activemq:queue://slackNotify?username=admin&password=admin")
      
      





これは、生成されたURI文字列を使用したエントリポイントの説明です。 activemqはコンポーネントの名前で、queueはメッセージチャネルのタイプで、キューまたはトピックのいずれかです。 次に、チャネルの名前slackNotifyが来ます。 URIの最後の部分は、エンドポイントパラメーターです。ユーザー名/パスワード-ユーザーのユーザー名とパスワード。



次に、いくつかのコンバーターとスプリッターがあります。





Slackとの統合には、Apache Camelのコンポーネントも使用されます。 しかし、問題が発生します。スラックチャネルの設定は事前に不明です。 着信メッセージからのみそれらを学ぶことができます。 aggregateJobProcessorコンバーターは、チャネル設定を含む行のURIの一部を形成し、ヘッダーに書き込みます。これにより、動的ルート( Dynamic Router )を作成できます



 from("direct:slackOutput") .recipientList(simple("slack:#${header.uri}"));
      
      





このルートの特徴は、エンドポイント、特にメッセージの送信先となるチャネルの設定を持つスラックコンポーネントを動的に選択することです。 ルートを構築するために、SEL(Simple Expression Language)を使用して取得され、simple()関数を使用して実行されるメッセージ自体(ヘッダー)からのデータが使用されます。 EIP-受信者リストテンプレートを使用すると、動的なエンドポイントを作成できます。



おわりに



統合例は、Apache Camelのシンプルさと使いやすさを実証しました。 Job Freelance Scannerプラットフォームが誰かに役立つことを願っています 。 また、将来的には、たとえば電子メール通知の追加やUIの改善など、プラットフォームの開発を計画しています。



参照:



→使用するリンク: jobfreelancescanner.com/

→githubへのリンク: github.com/leadex/job-monitor



All Articles