DEV Community

Query Filter
Query Filter

Posted on

counter2

REQ_FIFO=$(mktemp -u)
RESP_FIFO=$(mktemp -u)

mkfifo "$REQ_FIFO" "$RESP_FIFO"


counter_daemon() {
  local t=0
  local b=0

  while read -r cmd; do
    case "$cmd" in
      inc_t) ((t++)) ;;
      inc_b) ((b++)) ;;
      get)
        echo "$t $b" > "$RESP_FIFO"
        ;;
      quit)
        break
        ;;
    esac
  done < "$REQ_FIFO"
}



counter_daemon &
COUNTER_PID=$!






while IFS= read -r tableName; do
{
  echo inc_t > "$REQ_FIFO"

  echo ""
  echo "Dumping table $tableName"
  echo ""

  bcpOUTToDir "$tableName"
  BCP_LOAD_STATUS=$?

  if [ "$BCP_LOAD_STATUS" -ne 0 ]; then
    echo "ERROR: BCP OUT failed for table $tableName"
    echo inc_b > "$REQ_FIFO"
  fi
} &

proceedWhenLessThanMaxJobs
done < "$TABLE_NAME_FILE"




wait

echo get > "$REQ_FIFO"
read t b < "$RESP_FIFO"

echo "=========================="
echo "Total tables processed: $t"
echo "Failures: $b"
echo "=========================="

echo quit > "$REQ_FIFO"
wait "$COUNTER_PID"


rm -f "$REQ_FIFO" "$RESP_FIFO"

Enter fullscreen mode Exit fullscreen mode

Top comments (0)