>

Scrapy 가있다   bash 를 사용하여 매시간 달리는 거미  스크립트와 crontab .

거미의 실행 시간은 약 50 분이지만 1 시간 이상이 될 수 있습니다.

내가 원하는 것은 거미가 실행 중인지 확인하고 그렇지 않은 경우에만 새 크롤링을 시작하는 것입니다.

BASH SCRIPT

#!/usr/bin/env bash
source /home/milano/.virtualenvs/keywords_search/bin/activate
cd /home/milano/PycharmProjects/keywords_search/bot
# HERE I WANT TO CHECK, WHETHER THE PREVIOUS CRAWLING ALREADY STOPPED, IF NOT, DO NOTHING
scrapy crawl main_spider

내 마음에 오는 유일한 것은 telnet 를 사용하는 것입니다. .

연결할 수있는 경우- telnet localhost 6023 , 이는 거미가 여전히 실행 중임을 의미합니다. 그렇지 않으면 거미를 실행할 수 있습니다.

  • 답변 # 1

    어떤 종류의 잠금 메커니즘이 필요합니다.

    bash에서 원자 잠금을 얻는 가장 좋은 방법은 mkdir을 사용하고 결과 코드를 확인하여 잠금을 획득했는지 여부를 확인하는 것입니다.

    자세한 설명은 다음과 같습니다. http://wiki.bash-hackers.org/howto/mutex

    물론 프로세스 이름이나 그와 비슷한 것들에 대해 grep과 같은 더 더러운 메소드를 항상 사용할 수 있습니다.

    스크랩 자체에 잠금을 설정하고 공유 리소스에 대한 간단한 미들웨어 검사를 추가 할 수 있습니다 ... 많은 방법이 있습니다 :)

  • 이전 playframework - `MessagesApi`에 적합한 규정 Bean이 없습니다
  • 다음 bash - base64 문자열 패딩"\ = \ ="에서 백 슬래시 사용