Skip to content

Instantly share code, notes, and snippets.

@zyqxd
Last active June 21, 2024 14:47
Show Gist options
  • Save zyqxd/c1b77786506d7c6df8140e9993275c50 to your computer and use it in GitHub Desktop.
Save zyqxd/c1b77786506d7c6df8140e9993275c50 to your computer and use it in GitHub Desktop.
FARM code snippets
###
# Print id, deliveries, created_at in table
#
ActiveRecord::Base.logger.silence do
Promotion.where(theme_campaign: ThemeCampaign.recurring_lapsed_style).each do |p|
delivery_campaign = p.delivery_campaigns.first
processed = delivery_campaign.sms_deliveries.processed
link_window_start = processed.order(created_at: :asc).first&.created_at
link_window_end = processed.order(delivered_at: :desc).first&.delivered_at
puts [
p.id,
delivery_campaign.sms_deliveries.count,
p.created_at,
link_window_start || 'N/A',
link_window_end || 'N/A'
].map {|x| x.to_s.ljust(25) }.join(' | ')
end; nil
end
###
# Print promotion links
#
Promotion.find(11569706).promotion_links.order(url: :desc, label: :desc, unique_click_count: :desc).each do |pl|
puts [
pl.id,
pl.created_at,
pl.updated_at,
pl.url.truncate(30),
pl.label.truncate(30),
pl.unique_click_count
].map {|x| x.to_s.ljust(35) }.join(' | ')
end; nil
###
# Count sms_delivery_links per promotion
#
promotion = Promotion.find(11616072);
delivery_campaign = promotion.delivery_campaigns.first;
processed = delivery_campaign.sms_deliveries;
link_window_start = processed.order(created_at: :asc).first&.created_at
link_window_end = processed.order(delivered_at: :desc).first&.delivered_at
SmsDeliveryLink.where(sms_deliveries: processed).where(created_at: link_window_start..link_window_end).to_sql
# | -> Nested loop inner join (cost=118152169.32 rows=5652570) (actual time=179291.461..517397.710 rows=64187384 loops=1)
# -> Filter: (sms_delivery_links.created_at between '2024-05-16 13:50:06' and '2024-05-16 20:28:22') (cost=22825878.70 rows=113051394) (actual time=179291.429..270603.484 rows=66286720 loops=1)
# -> Table scan on sms_delivery_links (cost=22825878.70 rows=226102787) (actual time=0.051..108138.564 rows=248565488 loops=1)
# -> Filter: (sms_deliveries.delivery_campaign_id = 22323904) (cost=0.74 rows=0) (actual time=0.003..0.004 rows=1 loops=66286719)
# -> Single-row index lookup on sms_deliveries using PRIMARY (id=sms_delivery_links.sms_delivery_id) (cost=0.74 rows=1) (actual time=0.003..0.003 rows=1 loops=66286719)
## Cache test
merchant_token = 'JC2MTNGA8TV09'
user = User.find_by_token(merchant_token)
promotion = user.promotions.where(theme_campaign: ThemeCampaign.recurring_lapsed).first
deliveries = promotion.delivery_campaigns.first.sms_deliveries
contacts = deliveries.last(500).map(&:contact_token); nil
contacts.each do |contact_token|
AutomatedMarketing::ProductRecommendationEngine.get_recommended_item(
merchant_token: merchant_token,
contact_token: contact_token,
)
end
###
# Image investigation
def test
TmmCatalogProcessingItemsConsumer.setup_mini_magick
event_message = { merchant_token: 'TFXQ4DGEKBT5R', catalog_object_id: 'D5O5J5TB3O7MWEKW3SHWJTTO' }
merchant_token = event_message[:merchant_token]
catalog_object_id = event_message[:catalog_object_id]
catalog_response_proto = ConnectAPIClient::Catalog.retrieve_catalog_object(
object_id: catalog_object_id,
merchant_token: merchant_token,
include_related_objects: true,
api_version: "2024-03-20",
)
item_tuple = AutomatedMarketing::ItemsCatalog.build_item_image_tuples(
objects: [catalog_response_proto[:object]],
related_objects: catalog_response_proto[:related_objects]
).first
image_object = item_tuple&.dig(:image)
image_url = image_object[:image_data][:url]
puts image_url
puts "Opening image..."
# puts "Resizing image..."
# TmmCatalogProcessingItemsConsumer.resize_image(image)
# item_tuple
end
TmmCatalogProcessingItemsConsumer.setup_mini_magick
# Key is the size in mb
image_hash = {
"7" => "https://items-images-production.s3.us-west-2.amazonaws.com/files/8f498628a5933e7abcfa4b08b71d04cc91ab69e4/original.png",
"11.7" => "https://items-images-production.s3.us-west-2.amazonaws.com/files/c42a1970142a41d48a9b01fe87b1953adcae2849/original.png",
"8.6" => "https://items-images-production.s3.us-west-2.amazonaws.com/files/a862e59c536609a27b7579c2f5460bbc654ed454/original.jpeg",
"4.7" => "https://items-images-production.s3.us-west-2.amazonaws.com/files/aad76621c521eeb3e34c0cceed00979e56fe5227/original.jpeg",
"2.5" => "https://items-images-production.s3.us-west-2.amazonaws.com/files/547e2e201c068e228404e56248a5d883da8c734b/original.jpeg",
"3.4" => "https://items-images-production.s3.us-west-2.amazonaws.com/files/d1d89a11d0264504d28ede496fdb0a046a7b2268/original.png"
}
# Fails
image = MiniMagick::Image.open(image_hash["3.4"])
image.resize("300000@")
# Success
image = MiniMagick::Image.open(image_hash["8.6"])
image.resize("300000@")
# Success
image = MiniMagick::Image.open(image_hash["2.5"])
image.resize("300000@")
# Success
image = MiniMagick::Image.open(image_hash["4.7"])
image.resize("300000@")
# Fails
image = MiniMagick::Image.open(image_hash["7"])
image.resize("300000@")
# Fails
image = MiniMagick::Image.open(image_hash["11.7"])
image.resize("300000@")
top -p 1544174 -d 0.1
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment