Os jobs do Cron foram executados, mas não mostram nenhum resultado no banco de dados de destino

0

Eu tenho um trabalho Cron que é executado a cada 10 minutos no computador Linux (Ubuntu).

*/10 * * * * /home/dbase/Salesforce/InsertJob1

Quando eu fiz grep CRON /var/log/syslog , ele exibe todos os registros desse trabalho Cron (InsertJob1) que foi executado a cada 10 min.

Mas, quando analisei os resultados no lado do banco de dados (Salesforce), nada foi executado (sem inserções).

No lado do destino (banco de dados do Salesforce), não vejo nenhum histórico de login dessa API SOAP.

Mas, quando executo esse arquivo Python manualmente usando o IDE (PyCharm), ele é executado corretamente e os dados são inseridos no banco de dados do Salesforce.

Minhas perguntas são:

  1. Eu preciso modificar o crontab para que ele seja mostrado como InsertJob1 em vez de InsertJob1.py ?

  2. Eu preciso criar um link em vez de deixar o arquivo como InsertJob1.py ou sem extensão como InsertJob1 ?

  3. Que outras tarefas eu tenho ao lado de deixar o arquivo Python no local da pasta em que apontei para o Cron?

por King Java 08.08.2017 / 00:00

1 resposta

0

Você tem um erro no seu cron:

*/10 * * * * /home/dbase/Salesforce/InsertJob1

deve ser

*/10 * * * * /path/to/env/bin/python /home/dbase/Salesforce/InsertJob1.py

Quando você executa o código do terminal em um ambiente virtual (se você não estiver usando um, você deve considerá-lo), você o executa como

python script.py

O cron é executado da mesma maneira, exceto que você deve especificar um caminho para o seu executável python que tenha os pacotes apropriados instalados.

Em geral, durante o registro de um trabalho cron, você deve ter alguma saída gravada nos arquivos de log que informam se as partes apropriadas do seu cron foram executadas ou não. Basta adicionar alguns print () nos locais certos ou usar o módulo de registro em Python para o seu script.

    
por Anuvab 10.08.2017 / 13:44